Witaj Gościu Zaloguj się lub zarejestruj się.
Zaloguj

PHP 5.4, czyli nowe funkcjonalności, zmiany i poprawki

PHP 5.4, czyli nowe funkcjonalności, zmiany i poprawki

PHP wciąż ewoluuje. Mimo katastrofy projektu PHP 6, rozwój nadal jest kontynuowany. Developerzy postanowili skupić się na pracy nad wersją 5 i powoli, małymi krokami wprowadzać to, co powinno wejść w wersji 6.

Na świat już jakiś czas temu zawitała wersja 5.4. Co nowego w niej znajdziemy i jak możemy wykorzystać te zmiany? Zobacz sam.

Tak naprawdę zmiany widoczne dla użytkownika pomiędzy PHP 5.3 a PHP 5.4 są niewielkie. To dlatego, że nacisk położono na optymalizację kodu oraz wyczyszczenie go ze zbędnych funkcji, które zagrażały bezpieczeństwu aplikacji internetowych lub po prostu były przestarzałe.

Zmiany te zdecydowanie wyszły wszystkim na dobre. W niektórych sytuacjach interpreter jest nawet o 50 % szybszy w porównaniu z poprzednikiem. To ogromna różnica. Przyjrzyjmy się dokładnie, co z PHP 5.4 zostało usunięcie, co dodane, a co zmienione.

Śledzenie zmian w świecie PHP jest bardzo ważne, Przekonało się już o tym wiele osób, które przez swoją nieuwagę mają masę problemów z dnia na dzień. Jakie są to problemy? Myślę, że najlepszym przykładem jest usunięcie funkcji eregi w PHP 5.3 na rzecz lepszego odpowiednika preg_match. Skrypty, aplikacje internetowe i wiele witryn na świecie korzystających z tej funkcji przestało działać. Wszystko za sprawą aktualizacji, którą okresowo wykonują hostingi. Oczywiście telefony do programistów od Klientów z pretensjami, zawód osób korzystających z niektórych aplikacji internetowych itp. były bezcenne. A wszystko na własne życzenie. Przykład ten to nie mara z przed 20 lat, lecz prawdziwa sytuacja, która nadal ma miejsce. Wystarczy wpisać w wyszukiwarce google frazę "eregi deprecated problem" i zobaczyć, ile wyników można w tym temacie znaleźć.


Elementy usunięte

Prawdę mówiąc, nie jest to nic zaskakującego, gdyż zmiany te były już wcześniej zapowiadane. Jak przy każdej okazji, wszystkie osoby korzystające z tych funkcji miały naprawdę dużą ilość czasu na to, aby wprowadzić zmiany w swoich skryptach. Mimo tego, założę się, że są osoby, które "nic nie wiedziały".


Zmiany

Słowem. Zmiany nie są zbyt wielkie i dla większości niezauważalne. Najbardziej ucieszą się zwolennicy używania shorttagu , który został teraz dodany domyślnie do tagów uruchamiających interpreter php.


Nowości

Tych jest już zdecydowanie więcej, jednak nadal bez szaleństw. Mimo tego, są to ciekawostki, które na pewno uproszczą i przyśpieszą pracę wielu programistów.

  • Funkcja http_response_code() , która zdecydowanie ułatwi pracę przy aplikacjach korzystających z nagłówków odpowiedzi.
  • Wbudowany serwer WWW. Bardzo ciekawa nowość. Nie wyrzucajcie jednak swojego serwera Apache, ponieważ ten wprowadzony w PHP służy jedynie celom developerskim i nie powinien być używany w celach produkcyjnych. Jest to naprawdę bardzo uproszczona wersja, jednak chętnym polecam zapoznać się z jego możliwościami.
  • Nowa składnia definiująca tablicę - w końcu coś dla tych, którzy wchodzą w świat programowania PHP z całkowicie innego języka. Aż po dziś dzień tablice były definiowane za pomocą następującej składni:


    Teraz natomiast możemy pominąć słowo kluczowe array i utworzyć tablicę w nawiasach klamrowych, dokładnie tak, jak w innych językach programowania:


  • Array dereferencing - kolejne uproszczenie procesu programowania. Dotychczas, aby dostać się do tablicy zwracanej przez funkcję, musilimyśmy tworzyć zmienną tymczasową. Przykład? Proszę bardzo. Załóżmy, że mamy taką oto funkcję:

    W PHP <5.4 musieliśmy to robić tak:

    Teraz wystarczy, że napiszemy:
    Proste, prawda? Zmiana drobna, jednak przy większych projektach może być nieoceniona.
  • $this w anonimowych funkcjach. Przy stosowaniu funkcji anonimowych (closures), korzystanie z konstrukcji $this kończyło się błędem interpretera. Wiele osób wie, jakie niesie za sobą korzyści korzystanie z tej konstrukcji, dlatego przywrócono ją i już dziś można z niej bez problemów korzystać.
  • Cechy (traits). Dziedziczenie po wielu klasach jest dla wielu wciąż wielką zagadką. Mimo tego, dla tych, którzy wiedzą, o co chodzi, jest to wielkie ułatwienie codziennej pracy. W najnowszej wersji PHP wprowadzono obsługę cech, pozwalając ominąć niektóre ograniczenia, jakie niesie ze sobą standardowe pojedyncze dziedziczenie.

Zmiany drobne

  • Notacja binarna dla liczb całkowitych - możliwośc definiowania liczb za pomocą systemu dwójkowego. Podobnie jak w przypadku obsługiwanych dotychczas notacji w PHP (szesnastkowej, dziesiętnej i ósemkowej), tak i tutaj używamy przedrostka, tym razem 0b. Zmiana drobna, jednak wielu może się przydać.
  • Śledzenie postępu wrzucania pliku (uploadu). Od dziś możemy za pomocą zmiennych session.upload_progress śledzić postęp uploadu plików. Co ciekawe, jest ona domyślnie włączona w php.ini, więc nie trzeba nic robić, aby zacząć z niej korzystać. Czy jednak ona się do czegoś przyda? Czas pokaże.
  • Instrukcje break oraz continue w funkcjach nie przyjmują już zmiennych. Od teraz można przekazywać im tylko stałe.

Optymalizacja

Najważniejszą zmianą/nowością, przynajmniej dla mnie, jest optymalizacja całego interpretera. W końcu pozbyto się nieużywanych funkcji, zoptymalizowano istniejące i wprowadzili kilka poprawek, które skutkowały nawet 50% wzrostem wydajności w niektórych przypadkach. Oczywiście każdą poprawę szybkości działania przyjmujemy pozytywnie, szczególnie w tym przypadku, gdy mamy naprawdę ogromny skok wydajności.

Co ważne, wykonana praca pokazuje, że jest jeszcze wiele do poprawy i wbrew pozorom, nie wszystko jest tak optymalne, jak być powinno. Mam nadzieję, że prace będą trwały dalej a interpreter będzie coraz bardziej optymalnie działał.


Podsumowując

Zmiany wprowadzone w PHP 5.4 nie są wielkie. Można by nawet powiedzieć, że znikome. Mimo wszystko jednak, są one wykonane na tych najbardziej wrażliwych punktach, w miejscach, o które użytkownicy dopominali się już od dawna. Rozwój PHP trwa i mogę powiedzieć, że teraz, po katastrofie związanej z projektem PHP6 nabrały tempa. Ostatecznie, zamiast stracić - zyskaliśmy, ponieważ to, co się aktualnie dzieje w świecie PHP pozytywnie wpływa na jego przyszłość. Miejmy nadzieję, że kolejne wersje również będą tak udane i wprowadzą jeszcze więcej poprawek i nowości.

Inne wpisy, które mogą Cię zainteresować

Poniżej przedstawiamy Ci propozycje innych wpisów, które mogą Cię zainteresować. Sprawdź, czytaj i poszerzaj swoją wiedzę.


Czytaj
Dokumenty PDF w PHP. Część 1 - wybór biblioteki

Dokumenty PDF w PHP. Część 1 - wybór biblioteki

Czytaj
Odkrywamy tajemnice CSS - Operator + (plus) w stylach

Odkrywamy tajemnice CSS - Operator + (plus) w stylach

Czytaj
Laboratorium już tutaj jest! Materiały narzędzia i wiele więcej

Laboratorium już tutaj jest! Materiały narzędzia i wiele więcej

Czytaj
Inspirujące strony internetowe, wydanie nr 10

Inspirujące strony internetowe, wydanie nr 10

Komentarze do tego wpisu


comments powered by Disqus
Regulamin serwisu | Polityka prywatności | Polityka plików "cookies"

Materiały zamieszczone na niniejszej stronie są właśnością firmy Fuertigo Justyna Słobodzian lub firma posiada na nie odpowiednie licencje. Zabrania się kopiowania, modyfikowania oraz rozpowszechniania wszelkich materiałów znajdujących się na stronie bez pisemnej listownej zgody właściciela. Wyjątkiem są materiały, przy których widnieje inna informacja.