Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rozszerzenie PHP czy Bibliteka PEAR ?
Forum PHP.pl > Forum > PHP
wNogachSpisz
Witam

Często staję przed problemem, użyć biblioteki wbudowanej w PHP (lub dostępnej jako rozszerzenie, które na 99,9% powinno być włączone), czy skorzystać z zewnętrznej bibliteki PEAR?

Jeśli ktoś nie rozumie o co mi chodzi, to posłuże się przykładem.
Niechaj takim przykładem będzie protokół XML-RPC.
Długo się broniłem, no ale nadszedł dzień kiedy dopadł mnie standard - teraz musze jako klient połączyć się z serwerem gadającym w XMLRPC. :-(

Pierwsza czynność: Sprawdzam czy php obsługuje to z urzędu, okazuje się że nie do końca,
Kod
XML-RPC support in PHP is not enabled by default. You will need to use the --with-xmlrpc[=DIR] configuration option when compiling PHP to enable XML-RPC support. This extension is bundled into PHP as of 4.1.0.

"not enabled by default", to podnosi mój wewnętrzny alert i naturalnie rodzi pytanie:
Czy mój skrypt zadziała zawsze i wszędzie?
Odpowiedź brzmi: Tak, zasze... aż do chwili kiedy jednak nie zadziała, bo szalony na punkcie optymalizacji administrator postanowił poskąpić przy kompilacji smile.gif

Najlepszym rywalem jest oczywiście jedna z biblitek PEAR. Jest kilka wersji, starsza zadowoli się praktycznie gołym PHP4 - To Lubie!


Jestem ciekaw jak Wy zapatrujecie się na poruszoną tematykę.
darko
Sprawdzić status rozszerzenia w bieżącej konfiguracji phpa nietrudno (extension_loaded), podobnie obecność klasy (class_exists). To, którą bibliotekę wybierzesz i oprzesz na niej swoje rozwiązanie zależy głównie od Ciebie i tego, w której konkretnie bibliotece (rozszerzeniu) najlepiej Ci się pisze kod. W idealnej sytuacji, aby zwiększyć krąg odbiorców można pokusić się o zaimplementowanie obsługi wszystkich popularnych rozszerzeń, jednak w praktyce nie stosuje się tego z oczywistych względów (masa nadmiernego kodu). Akurat w przypadku Xml-Rpc problem polega na tym, iż rozszerzenie opisane w dokumentacji jest eksperymentalne ze wszystkimi skutkami, jakie z tego wynikają, stąd polecałbym jednak użyć pear-owego XML-RPC2. Dodatkowo, z tego, co się orientuję rozwiązanie z peara oferuje buforowanie wyników, co przyspiesza cykl żądanie - odpowiedź. Możesz też wykorzystać gotowe komponenty z jakiegoś frameworka np. Zend lub Symfony.
wNogachSpisz
Cytat(darko @ 6.05.2011, 21:48:46 ) *
Sprawdzić status rozszerzenia w bieżącej konfiguracji phpa nietrudno (extension_loaded), podobnie obecność klasy (class_exists).

To oczywiste. Nie można jednak tego sprawdzić względem każdej konfiguracji na której kod będzie w przyszłości uruchamiany - tutaj leży problem.

Cytat(darko @ 6.05.2011, 21:48:46 ) *
To, którą bibliotekę wybierzesz i oprzesz na niej swoje rozwiązanie zależy głównie od Ciebie i tego, w której konkretnie bibliotece (rozszerzeniu) najlepiej Ci się pisze kod.

Wygodnictwo nie ma dla mnie najmniejszego znaczenia.
Moje cele to kolejno:
- niezawodność
- przenośność
- wydajność

Cytat(darko @ 6.05.2011, 21:48:46 ) *
Możesz też wykorzystać gotowe komponenty z jakiegoś frameworka np. Zend lub Symfony.

PEAR vs Zend/Symfony
Dla mnie odpowiedź jest prosta, a zwycięzca jeden.. PEAR 4 Eva
darko
Cytat(wNogachSpisz @ 7.05.2011, 13:46:34 ) *
To oczywiste. Nie można jednak tego sprawdzić względem każdej konfiguracji na której kod będzie w przyszłości uruchamiany - tutaj leży problem.

Czy aby na pewno?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.