PHP 5.5.0 stabilne

php-logoJeśli ktoś uważał, że język PHP nie rozwija się, wegetuje… Był w błędzie. Tylko 15 miesięcy zajęło developerom wydanie stabilnego następcy wersji PHP 5.4.

A zmian, nowości oraz ewolucji nie brakuje w wersji PHP 5.5.

Opcode cache wbudowane!

Po tylu latach używania różnych alternatyw (w moim wypadku APC – czy warto korzystać?) doczekaliśmy się w końcu wbudowanego Opcode cache. Dokładniej to Zend Optimizer+ został wbudowany w jądro PHP 5.5.0.
Można powiedzieć, że dzięki temu zabiegowi PHP bardzo przyspieszyło – sporo osób nie wiedziało o Opcode cache, lub nie radziło sobie z jego instalacją. Prawdopodobnie dla zwykłego programisty wrażenie jakie odniesienie po instalacji PHP 5.5 będzie niesamowite przyspieszenie działania PHP. A reszta może zapomnieć o dodatkowej instalacji APC, lub pilnowania aktualności wersji tej paczki PECL. Przykładowa konfiguracja Opcode w php.ini:

Constant dereferencing

To jest jedna z tych rzeczy, na którą czekałem. Bardzo wiele razy trzeba było tworzyć zmienną, by móc odwołać się do n-tego elementu lub znaku. Nigdy więcej 🙂

List w foreach

Do tej pory sposób korzystania z list() był delikatnie mówiąc – brzydki. Było to bardzo nielogiczna operacja moim zdaniem i z niej nie korzystałem. Od nowej wersji natomiast możemy skorzystać z tej funkcji bezpośrednio w wywołaniu foreach. Przykład z wiki RFC:

Słowo kluczowe finally

W końcu finally można dodać do bloku try…catch i mamy gwarancję, że dany fragment zostanie zawsze wykonany. Do tej pory wyglądało to tak, że używaliśmy pięknej obiektówki, a później nagle trach fragment znikąd, w którym czyściliśmy niektóre operacje lub robiliśmy przekierowanie – nigdy więcej.

Password Hashing API

W końcu nie musimy samemu tworzyć funkcji hashujących dla haseł, ani martwić się czy użyty algorytm jest odpowiednio dobry. Od teraz mamy do dyspozycji wbudowaną funkcję hashującą password_hash oraz funkcję sprawdzającą poprawność hasha password_verify. Domyślny algorytm to bcrypt, który generuje hash 60 znakowy. Przykład:

Generatory

Generatory mają nam ułatwić tworzenie przeróżnych iteratorów. Tworzy się je jak normalne funkcje, ale nie używa się słowa return. Zamiast return w generatorze używamy yield w następujący sposób:

Widzicie jakie to proste? Można powiedzieć, że w yield odkładają nam się kolejne wartości dopóki funkcja nie przestanie działać. Taki generator zwraca nam najzwyklejszą tablicę obiekt Generator, który można swodobnie iterować i traktować jak najzwyklejszą tablicę.

Dodatkowo zaktualizowano GD do wersji 2.1, empty() może przyjmować dowolne wartości (również bool) oraz wprowadzono wiele usprawnień.

Pamiętajmy – wydanie PHP 5.5. spowodowało, że gałąź PHP 5.3 została zamknięta. Od teraz będą w niej wyłącznie łatane luki bezpieczeństwa.

Źródło: php.net