Jak szybko przetestować PHP 5.3

***Nowinki zabierają czas …***

Pracuję na Linuksie już jakiś czas ale nie lubię własnoręcznie kompilować źródeł. Wolę gotowe binarki. Obecnie uzywając Ubunu wystarczy klika magicznych komend aby postawic Apache z Mysql i PHP i szybko przystąpić do pracy. Tymczasem zachciało mi się wypróbować PHP 5.3.0. Na gotowe pakiety z PHP w tejże wersji w repozytoriach Ubuntu przyjdzie jeszcze trochę poczekać więc zatrudniłem google do poszukiwań jakiegoś poradnika opisującego jak szybko i bezproblemowo zkąpilować PHP-a. Okazało się, że jest tego masa w necie. Ponieważ bawię się ostatnio w wirtualki, przymierzyłem się do zainstalowania „developerskiej” wersji linuksa. Zastanawiając się nad wyborem dystrybucji brałem pod uwagę jakąś debiano – pochodną (z uwagi na moje dotychczasowe przyzwyczajenia) lub też arch linuxa tym bardziej, że we wpisie [Arch PHP Webdevelopment Platform](http://www.zyxist.com/pokaz.php/arch_php_webdevelopment_platform) na blogu Zyxa przeczytałem, iż zabrał się on za tworzenie specjalnie dydykowanych dla programistów PHP pakietów.

***… wcale nie :)***

Tymczasem znajomy używający Windowsa przesłał mi linka do strony [WampServer-a](http://www.wampserver.com/), gdzie zobaczyłem, że najnowsza wersja WampServer 2.0i z 11 lipca br. zawiera już wersję PHP 5.3.0. Kurcze – o mało nie uległem pokusie i przelogowania się na windowsa lub też zainstalowania wampa na moim wirtualnym Windowsie. Na szczęście przypomniałem sobie o ApacheFriends. Ku mojej radości oni równierz przygotowali [XAMPP-a z PHP 5.3](http://www.apachefriends.org/en/xampp-beta.html) na pokładzie. Na razie ma on status wersji beta, ale do wypróbowania wystarczy :D. No i można go uruchomić na linuksie w dosłownie chwilę. Wystarczy ściągnąć, rozpakować do opt-a, wyłączyć działające w tle serwery apacha i mysql-a oraz serwer ftp i uruchomić XAMPP-a. Najfajniejsze w tym jest to, że kiedy znudzi nam się zabawa wystarczy wyłączyć XAMPP-a i ponownie uruchomić wyłączone wcześniej usługi by powrócić do pracy. Ponieważ XAMPP ładowany jest do opt-a pozbycie się go w razie potrzeby też nie stanowi problemu. Polecam.

Posted in PHP by Zbigniew Heintze · Tag:

PHP 5.3

Jak większość programistów PHP od dłuższego czasu śledzę postęp prac nad PHP 6. Tymczasem wydano PHP 5.3 stanowiącą preludium przed wersją szóstą, a umożliwiającą zapozanie się z mającymi nadejść nowościami.

O tym co nowego w PHP 5.3 można się w skrócie dowiedzieć z newsa na webinside.pl [„Nowa wersja PHP – 5.3!”](http://www.webinside.pl/news/6090) lub dzienników zyx-owych [PHP 5.3.0 wydane](http://www.zyxist.com/pokaz.php/php_53_wydane). Z kolei zaglądając na stronę [PHP 5.3.0 Release Announcement](http://php.net/releases/5_3_0.php) poznamy szczegóły. Chcąc zapoznać się z przewidywalnymi problemami jakie mogą nas spotkać w procesie migracji do nowszej wersji warto też przeczytać [Migrating from PHP 5.2.x to PHP 5.3.x](http://pl.php.net/migration53). Warto też zajrzeć do artykułów na wortalu php.pl [Co nowego w php 5.3 – część 1](http://wortal.php.pl/wortal/artykuly/php/podstawy/co_nowego_w_php_5_3_czesc_1) i [Co nowego w php 5.3 – część 2](http://wortal.php.pl/wortal/artykuly/php/podstawy/co_nowego_w_php_5_3_czesc_2), które powstały jeszcze przed premierą.

Oczywiście największym moim zainteresowaniem cieszą się namespaces. Nie wiem w jakim procencie będę ostatecznie wykorzystywał cały potencjał tego nowego mechanizmu jednak już teraz wiem, że szybko zapoznam się z funkcją „class_alias”. Myślę, że podobnie powinni postąpić programiści Kohana PHP, którzy namiętnie nadużywają (a przynajmniej nadużywali) evala w swoim frameworku. Krąży taka anegdota, że funkcja eval w PHP 6 zmieni nazwę na evil 😉

Inną kwestią, która niekiedy mnie irytowała to ograniczenia jakie nałożone były na metody statyczne. [Late Static Bindings](http://pl2.php.net/lsb) ułatwi wykorzystywanie metod statycznych w połączeniu z dziedziczeniem i magicznym wywoływaniem. Natomiast nie bardzo na razie rozumiem dlaczego stworzono funkcję „forward_static_call”.

Kolosalne znaczenie przypisuję z kolei faktowi włączenia domyślnie do dystrubucji PHP rozszerzeń [FileInfo](http://pl.php.net/manual/pl/book.fileinfo.php) oraz [INTL](http://pl.php.net/manual/pl/book.intl.php). Pierwsze z wymienionych umożliwia jakże istotne z punktu widzenia bezpieczeństwa sprawdzenie mimetype pliku. Dotąd też było to możliwe i to na kilka sposobów. Trudność polegała głównie na tym, że funkcje, lub metody umożliwiające detekcję typu pliku dostępne były w dodatkach PECL „FileInfo” lub „Mimetype” (obecnie zdepreconowanego) nie zawsze uwzględnione w konfiguracji PHP zainstalowanej na tym czy tamtym serwerze.

Drugi ze wspomnianych dodatków z kolei stanowi rozbudowane narzędzie do internacjonalizacji, które przynajmniej w założeniu rozwiąże wiele istotnych problemów związanych z tym zagadnieniem.

To mi się podoba

Może to drobiazg, ale parę razy zdarzyło mi się pisanie funkcji „lcfirst”. Może to i banał jednak skoro istnieje funkcja „ucfirst”, powołanie do życia funkcji „lcfirst” wydało mi się jak najbardziej uzasadnione 😀

Posted in PHP by Zbigniew Heintze · Tag: