Nowa wersja PHP 8 wydana pod koniec 2020 roku była długo wyczekiwana przez wielu użytkowników. Nowa wersja wprowadza funkcje związane z optymalizacją, a także ma zwiększać szybkość działania. Czy rzeczywiście tak jest?
Czym jest PHP 8?
Język PHP jest stosowany do tworzenia stron internetowych oraz tworzenia aplikacji webowych. W listopadzie 2020 roku pojawiła się ósma wersja PHP, która wprowadza kilka zmian. Wiele osób zadaje sobie pytanie: czy PHP w wersji 8 podnosi wydajność i rzeczywiście przyspiesza pracę? Na to pytanie postaramy się odpowiedzieć w tym artykule.
Twórcy w PHP 8 zaimplementowali zupełnie nowe rozwiązania, które przede wszystkim zwiększają funkcjonalność języka. Już na początku warto napisać, że wzrostu wydajności nie odczuje każdy. Przejście z PHP piątej generacji do siódmej przyniosło realną zmianę.
W tym wypadku jest nieco inaczej, choć z pewnością znajdzie się grupa osób, która zauważy lepszą wydajność. Tuż po aktualizacji różnice nie będą widoczne na pierwszy rzut oka, ale możemy zagwarantować, że z czasem będzie coraz lepiej. PHP w wersji 8 to stabilna i niezwykle dopracowana wersja.
PHP 8 – nowe funkcje
Wprowadzenie ósmej generacji PHO przyczyniło się do wdrożenia wielu nowości. Poniżej znajdziesz listę najważniejszych nowych funkcji, które pojawiły się w ósmej wersji PHP.
PHP 8 – JIT
W ósmej wersji PHP jedną z najbardziej wyczekiwanych nowości jest JIT, czyli kompilator Just In Time. Jego zadaniem jest kompilowanie programu do kodu maszynowego tuż przed jego wykonaniem.
JIT został zaprojektowany w taki sposób, aby współpracować z OPCache. Takie rozwiązanie zwiększa wydajność i wpływa na szybsze uruchamianie. JIT doskonale radzi sobie z długimi i złożonymi obliczeniami – choć przy prostych stronach internetowych również poradzi sobie bez większego problemu.
Union Types 2.0
Union Types 2.0 wprowadza możliwość przypisania dwóch typów zmiennych. Przede wszystkim pojawiła się długo oczekiwane przypisanie dwóch typów lub więcej. Dzięki temu korzystanie z adnotacji PHPDoc nie jest już konieczne.
WeakMaps
Ta funkcja znacznie skraca czas oczekiwania na zapytanie, a także ma bezpośredni wpływ na wydajność. Weak Maps gromadzi obiekty, które mają słabe odwołania kluczy z możliwością zniszczenia, bądź usunięcia. W długotrwałych procesach zapobiega to wyciekowi pamięci i poprawą wydajności.
Attributes V2
Atrybuty zwane również adnotacjami są to struktury metadanych, które można używać do określania właściwych obiektów, elementów bądź plików. Atrybuty mogą być umieszczone w dowolnym miejscu. Attribites V2 świetnie sprawdza się do pracy z krótkimi częściami kodów.
Match Expression
Nowe wyrażenia dopasowania swoją budową są bardzo zbliżone do znanych już dopasowań switch. Jednak Match Expression z bezpieczniejszą semantyką umożliwia zwracanie zawartości oddzielonej przecinkami. Dla wielu programistów to jedna z lepszych zmian, które pojawiły się w PHP w wersji 8.
Named arguments
Named arguments pozwalają na przekazywanie argumentów funkcji na podstawie nazwy parametru, a nie jego pozycji. Użytkownik może przekazać nazwane argumenty do funkcji po prostu dodając nazwę parametru przed jego wartością.
Dodatkowo istnieje możliwość używania zarezerwowanych słów kluczowych. Named Arguments pozwalają też na określenie, które z argumentów chcemy zmienić. W ten sposób nie trzeba określać argumentów domyślnych, jeśli nie chcemy nadpisywać domyślnych wartości.
Lista nowych funkcji
Lista nowości w postaci dodatkowych funkcji, które pojawiły się wraz z ósmą wersją PHP:
- Constructor Property Promotion,
- Validation for Abstract Trait Methods,
- Incompatible Method Signatures,
- Arrays Starting With a Negative Index,
- Union Types 2.0,
- Consistent Type Errors for Internal Functions,
- throw Expression,
- Weak Maps,
- Trailing Comma in Parameter List,
- Allow ::class syntax on objects,
- Attributes v2,
- Named Arguments,
- Nullsafe Operator,
- Saner String to Number Comparisons,
- Saner Numeric Strings,
- Match Expression v2,
- Stricter Type Checks for Arithmetic/Bitwise Operators.
Jaka jest wydajność PHP w wersji 8?
Przyszedł czas, aby przyjrzeć się bliżej wydajności nowego PHP w wersji 8. Serwis Kinsta wykonał testy 20 platform/konfiguracji PHP na 7 różnych wersjach od PHP 5 do PHP 8.0. Wyniki nie są pewnie zaskoczeniem. Najnowsza wersja PHP w wersji 8 okazała się bezkonkurencyjna na większości platform uwzględniając WordPress oraz Laravel.
WordPress przy użyciu 8 wersji PHP jest w stanie obsłużyć o 18,4% więcej żądań na sekundę niż w przypadku PHP 7.4. Laravel na PHP 8.0 może uruchamiać o 8,5% więcej żądań na sekundę niż w PHP 7.3. Osoby korzystające z tych dwóch platform powinny jak najszybciej dokonać aktualizacji, ponieważ wzrost wydajności będzie zauważalny.
Czy warto korzystać z PHP w wersji 8?
Długo oczekiwana aktualizacja PHP do ósmej wersji nie zawodzi! Jedną z największych nowości jest bez wątpienia kompilator Just in Time, który usprawnia pracę na wielu obszarach.
Oczywiście opisane przez nas funkcje są małym ułamkiem tego co pojawiło się wraz z wypuszczeniem nowej ósmej wersji PHP. Twórcy skupili się nie tylko na poprawie wydajności, ale również na poprawieniu błędów występujących w poprzednich wersjach. PHP w wersji 8 to kompletny język programowania, który teraz jest jeszcze bardziej funkcjonalny.