RSS
 

PHP 5.3

06 lip

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!” lub dzienników zyx-owych PHP 5.3.0 wydane. Z kolei zaglądając na stronę PHP 5.3.0 Release Announcement 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. Warto też zajrzeć do artykułów na wortalu php.pl Co nowego w php 5.3 – część 1 i Co nowego w php 5.3 – część 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 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 oraz INTL. 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 :D

 
2 Comments

Posted in PHP

 

Tags:

Leave a Reply

 
 
  1. Nikodem

    10 lipca 2009 at 14:36

    Kiedy to zdarzyło Ci się potrzebować funkcji lcfirst() :O !? ;)

     
  2. bigZbig

    10 lipca 2009 at 14:56

    Chcąc np. wywieść nazwę zmiennej, lub metody z nazwy klasy zapisanej CamelCase-m. Nazwy klas zaczynają się zwykle od wielkiej litery (zależy od przyjętej konwencji), z kolei nazwy zmiennych lub metod od małych. W takich przypadkach zachodzi potrzeba zmiany tylko pierwszej litery.