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 😀