Nadchodzi PHP7

Hosting , Nowości , Sklepy Cze 22, 2015 Brak komentarzy

Grupa developerska PHP udostępniła pierwsze wydanie alpha PHP7. Co przynosi nowe wydanie? Jakich zmian możemy się spodziewać w najnowszej wersji parsera?

Statki kosmiczne, czyli Spaceship Operator

Pierwszą nowością, którą dodaje nowa wersja jest nowy operator Combined Comparision Operator, zwany także Spaceship Operator ze względu na swój kształt, bowiem wyrażany jest przez następujący zestaw znaków: <=>. Jest to operator używany głównie w przypadku sortowania, bowiem w przypadku jego użycia jednym wyrażeniem otrzymujemy wynik trzech porównań, tj. Czy lewa strona jest większa niż prawa (wówczas operator zwraca -1), czy jest jej równa (zwraca 0) czy jest większa (zwraca 1). Developerzy często rozwiązujący własnoręcznie problem sortowania, z pewnością będą zachwyceni.

Null Coalesce Operartor

Innym operatoerm wprowadzonym w tej wersji jest Null Coalesce Operartor (??), czyli operator ułatwiający decyzję o zwróceniu wartości w przypadku, gdy lewy argument jest niezdefiniowany (null). Z racji na przewidywany sposób użycia, operator nie zwraca Notice’a, gdy lewy argument jest niezdefiniowany, co występuje w przypadku użycia trenariusza (?:).

Deklaracja typu zwracanego przez funkcję

Podobnie jak wcześniej możliwe było podanie jakiego typu jest argument funkcji, tak wraz z nadejściem PHP7 możliwe będzie także opisanie, jakiego typu wartość zwraca funkcja.

Jest to ukłon w stronę fanów bardziej ścisłej definicji funkcji, pozwalajcy z jednej strony na lepszą kontrolę nad kodem i łatwiejsze debugowanie go, a z drugiej pozwoli w prosty sposób zaimplementować (lub rozwinąć) w edytorach podpowiedzi dotyczące danej funkcji.

Wydajność, wydajność, wydajność

Wszystko wskazuje na to, że PHP7 będzie krokiem milowym w stronę szybszych stron WWW. Czas wykonania tych samych skryptów ma oscylować w granicach 25%-70% dotychczasowego czasu wykonania, a to znaczy, że prędkość może wzrosnąć nawet czterokrotnie! W przypadku starszych wersji różnica była znacznie mniejsza, jednak tym razem zmiana będzie bardzo widoczna.

Swoją wydajność PHP7 zawdzięcza połączeniu kodu z eksperymentalną wersją PHPNG, która na celu miała właśnie ekstremalne przyspieszenie wydajności PHP.

Pozostałe zmiany

Z pozostałych nowości koniecznie trzeba wymienić jeszcze kilka z nich:

  • grupowe deklaracje Use
  • usprawnienia generatorów
  • przechwytywalne fatal error’y dzięki Engine Excpetions

Opis wszystkich zmian, możecie znaleźć w źródłach projektu PHP opisujących zmiany w nowej wersji.

Every magic comes with a price

Niestety wszystkie te ulepszenia mają swój koszt. W nowej wersji PHP złamano zasadę zachowania maksymalnej kompatybilności wstecznej i niektóre z mechanizmów, w szczególności te, które zostały oznaczone jako przestarzałe (deprecated), zostały po prostu usunięte z najnowszej wersji. Z przykładów warto wymienić:

  • usunięcie rozszerzenia mysql (zastępowane przez mysqli lub PDO)
  • usunięcie funkcji obsługujących POSIXowe wyrażenia regularne (grupa funkcji ereg*)
  • usunięcie tagów w stylu ASP (<% %>, <script language=”php”></script>)
  • niedozwolone jest użycie wielu bloków „default” w instrukcji „switch”

Okazuje się jednak, że wsteczne niekompatybilności nie są tak straszne, jak się początkowo wydają. Część z nich jest dość rzadko stosowana, jak tagi ASP, natomiast inne od dawna są niezalecane i większość popularnych projektów już dawno takich instrukcji nie używa (PDO zamiast rozszerzenia mysql, funkcje z rodziny preg* zamiast ereg*). W praktyce okazuje się, że także nie ma dużych problemów z migracją do nowej wersji. Wiele z aplikacji już przetestowano na nowej wersji i większość po prostu działa na PHP7 bez żadnych zmian.

Na co czekamy?

O wszystkich nowych funkcjach w wersji produkcyjnej będziemy mogli przekonać się sami jeszcze w tym roku, bowiem publikacja finlanego wydania PHP7 możemy spodziewać się już w trzecim kwartale 2015. Do tego czasu planowane jest wydanie kilku wydań alpha, beta i RC.

Testy PHP7 w dhosting.pl

W dhosting.pl będziemy prowadzili eksperymentalne wdrożenia PHP7 wraz z użytkownikami, którzy wyrażą taką chęć. Ze względu na aktualnie eksperymentalny charakter PHP7, do testów zapraszamy użytkowników korzystających z serwerów dedykowanych i serwerów dVPS. Zgłoszenia przyjmowane są przez Helpdesk24h w dPanelu.

Tagów : ,
Przemysław Dolny

Przemysław Dolny