🍪 Można ciasteczko?

Ta strona chce wykorzystywać pliki cookie do analizowania ruchu oraz mierzenia skuteczności i personalizacji reklam zgodnie z polityką prywatności. Zgadzasz się?

PORADNIKI

8 min. czytania

PHP 8

PHP

Fot. PHP

Najważniejsze informacje o PHP 8. Funkcje, wydajność, możliwości PHP 8.0, 8.1, 8.2 i 8.3. Co nowego, jak sprawdzić i włączyć nową wersję!

Spis treści
Serwer

Czym najnowsza wersja PHP różni się od swoich poprzedników? Jak sprawdzić, która aktualizacja jest najnowsza i czego możesz się po niej spodziewać? Poznaj najnowsze informacje dotyczące kolejnych wersji PHP 8, wprowadzonych w nich zmian i nie tylko.

Tysiące programistów PHP z całego świata i amatorów tworzących witryny WWW bezustannie śledzi aktualizacje tego języka programowania. Każda nowa wersja przynosi wiele niespodzianek, sprawiając, że to najczęściej stosowane rozwiązanie staje się jeszcze lepsze. Warto natomiast wiedzieć, gdzie i jak sprawdzić, która odsłona tego języka jest najnowsza. Dzięki temu zyskasz pewność, że na pewno ma ona odpowiednie wsparcie twórców i jest bezpieczna.

Nowe funkcje, które są wprowadzane w kolejnych odsłonach PHP, niosą ze sobą szereg udogodnień. Wpływają zarówno na komfort pracy programistów, jak i sprawne funkcjonowanie witryn. Zwiększają wydajność języka oraz optymalizują jego zasoby. Przyjrzyjmy się zatem najnowszym wersjom PHP 8 i najważniejszym różnicom, które je od siebie różnią.

Co musisz wiedzieć o języku PHP?

Co to jest PHP? Jak zapewne wiesz, jest to oczywiście język programowania. Powstał w 1995 roku i do tej pory jest najczęściej wykorzystywanym rozwiązaniem na świecie. Twórcy bezustannie go rozwijają, wprowadzając regularnie na rynek nowe wersje. Każda zawiera kolejne aktualizacje, usprawniające jego działanie.

Co istotne, skryptowy język PHP jest całkowicie bezpłatny. Ten fakt oraz jego popularność sprawiają, że zgromadziła się wokół niego ogromna społeczność twórców internetowych. Tworzą oni z jego pomocą witryny WWW o najróżniejszym charakterze. Został stworzony z myślą o generowaniu stron internetowych w czasie rzeczywistym. Doskonale sprawdza się także przy aplikacjach webowych. Oparte na nim są największe serwisy świata, takie jak np. Facebook.

Cykl życia wersji PHP

Gdzie sprawdzić numer najnowszej wersji PHP? Bez problemu zrobisz to na oficjalnej stronie projektu: https://www.php.net/supported-versions.php. Możesz otworzyć ją praktycznie w każdej przeglądarce, niezależnie od obsługiwanego przez Ciebie urządzenia. Sprawdzisz tam sześć ostatnich aktualizacji:

  • trzy, które nie mają już wsparcia,
  • jedną, która wspierana jest już tylko pod kątem aktualizacji zabezpieczeń,
  • dwie, które są obecnie w pełni wspierane przez twórców.

Na przejrzystym wykresie zobaczysz także linię czasu. Zaznaczono na niej termin, kiedy dana wersja została wydana. Widać także, jak długo była (i będzie) wspierana oraz kiedy czas ich aktualizacji dobiegł (lub dobiegnie) końca. Wersja na samym dole, zaznaczona na zielono, jest najnowszym wydaniem PHP 8.

Średni cykl życia danej wersji PHP to około 3 lata. Oczywiście nie w każdym przypadku termin ten jest przestrzegany co do dnia. Da się natomiast opisać schemat wprowadzania każdej nowej wersji. Kolejne etapy tego działania wyglądają bowiem następująco:

  1. wybrana wersja x pojawia się na rynku,
  2. przez dwa lata wersja x jest rozwijana i wspierana przez twórców,
  3. w drugim roku jej funkcjonowania pojawia się już nowa wersja PHP – x1, rozpoczynająca nowy cykl,
  4. w trzecim roku wersja x przechodzi w stan „wygasania” – otrzymuje wyłącznie poprawki związane z bezpieczeństwem użytkowania.

PHP 8.3 vs PHP 8.2 vs PHP 8.1 vs PHP 8.0

W momencie powstawania tego artykułu na rynku są obecne cztery wersje PHP 8. Mowa tu kolejno o:

  • PHP 8.0 – opublikowanym 26 listopada 2020 roku (niewspierany),
  • PHP 8.1 – opublikowanym 25 listopada 2021 roku (obecnie wygaszany),
  • PHP 8.2 – opublikowanym 8 grudnia 2022 roku,
  • PHP 8.3 – opublikowanym 23 października 2023 roku.

Każda z nich wiązała się z wprowadzeniem do języka nowych funkcji. Poniżej opisaliśmy więc najważniejsze z nich, ułatwiające rozpoznanie konkretnej aktualizacji.

PHP 8.0 – najważniejsze cechy

Największa aktualizacja ostatnich lat to PHP 8.0. Względem swoich poprzedniczek, czyli PHP 7 i kolejnych wersji po kropce, zawierała najwięcej nowości, m.in.:

  • JIT compilation – odpowiada za kompilację kodu maszynowego zaraz przed jego wykonaniem. Sprawia to, że kod jest realizowany szybciej niż w przypadku tradycyjnej wersji interpretera;

match expression – dzięki niemu możliwe jest zwrócenie wartości za pomocą parametru wejściowego. Nie jest do tego konieczne używanie dodatkowych słów kluczowych. Użyć go można też do porównania wartości przy użyciu silnego typowania;

  • constructor property promotion – to tzw. syntactic sugar. Pozwala uniknąć przypisywania w konstruktorze wielu argumentów do właściwości obiektu;
  • union types (Unia) – umożliwia definiowanie zestawu typów dla danych zwracanych oraz wyjściowych;
  • WeakMaps (tzw. słabe mapy) – odpowiada za przechowywanie referencji. Pozwala też na ich usuwanie przy użyciu Garbage Collectora;
  • Attributes – nazywane atrybutami lub adnotacjami, tworzone były wcześniej w formie komentarzy. Po aktualizacji stały się pełnoprawną częścią języka. Ich otwarcie i zamknięcie oznaczane jest podwójnymi znakami większości i mniejszości „<< >>”.

PHP 8.1 – najważniejsze cechy

PHP 8.1 to rozbudowana i unowocześniona wersja PHP 8.0. Oferuje kilka dodatkowych i przydatnych funkcji, choć w perspektywie ostatnich lat nie jest uznawana za przełomową. Jak każda aktualizacja, naprawiała błędy poprzedniczek i poprawiała stabilność kodu. Oprócz tego natomiast wprowadzała także:

  • Enums – typ „enum”, pozwalający użytkownikom zdefiniować typy danych z konkretnymi wartościami;
  • modyfikator readonly – dostępny tylko dla właściwych klas. Gdy po inicjalizacji nastąpi próba zmiany wartość danej właściwości, nie będzie to możliwe i dojdzie do pojawienia się błędu;
  • Fibers – blok kodu ze zdefiniowanym stanem i zmiennymi. Utrzymują własne stosy, więc mogą być uruchamiane i wznawiane w dowolnym miejscu. Wykonywane są asynchronicznie i równolegle względem kodu;
  • typ „never” – nowy typ zwracany. Jego zadaniem jest zmiana zachowania metody lub funkcji. Program nie zwraca wtedy wartości, a zamiast tego zgłasza wyjątek lub kończy działanie kodu z wezwaniem „die()”, „exit()”, „trigger_error()”.

PHP 8.2 – najważniejsze cechy

W momencie pisania tego tekstu najnowszą wersją jest PHP 8.2. Wprowadza ona szereg przydatnych aktualizacji, które docenić powinni szczególnie deweloperzy. Mowa tu o takich rozwiązaniach, jak m.in.:

  • Readonly classes (klasy wyłącznie do odczytu) – w wersji PHP 8.1 wprowadzono modyfikator readonly do właściwości klas. W tej aktualizacji natomiast wprowadzany jest on do oznaczenia klas. Dzięki temu zapis może ulec skróceniu i nie dotyczy wszystkich właściwości klas po kolei;
  • nowe typy zwracania danych – do tej pory zwracanie danych możliwe było w łączonych postaciach (unions). Po aktualizacji dostępne są typy: true, false i null;
  • wycofanie „utf8_decode()” i „utf8_encode()”;
  • AllowDynamicProperties Attribute – aktualizacja wycofuje właściwości dynamiczne. Atrybut „AllowDynamicProperties” pozwala na usunięcie komunikatu „E_DEPRECATED”. W PHP 9.0 użycie właściwości dynamicznych ma być powiązane ze wstawieniem odpowiedniego wyjątku „ErrorException”;
  • typy DNF – pozwala na powiązanie Intersection Types i Union;
  • pobieranie właściwości enum – wykorzystanie „->/?->” pozwala na pobranie enumów w wyrażeniach stałych. Ma to pozwolić na uzyskiwanie nazw i wartości w miejscach, w których nie są dozwolone obiekty enum.

PHP 8.3 – najważniejsze cechy i nowości

W najnowszej wersji PHP, PHP 8.3, wprowadzono wiele istotnych zmian i nowych funkcji, które powinny zainteresować deweloperów. Oto niektóre z najważniejszych:

  • Typed Class Constants: W PHP 8.3 wprowadzono możliwość wyraźnego typowania stałych klas. Pozwala to na określenie konkretnego typu dla stałej klasy, co przyczynia się do większej przejrzystości i bezpieczeństwa kodu.
  • Dynamic Class Constant Fetch: Ta funkcja pozwala na dynamiczne pobieranie wartości stałej klasy, co jest szczególnie przydatne w sytuacjach, gdy nazwa stałej nie jest znana w czasie pisania kodu.
  • Nowy atrybut #[\Override]: Ten atrybut umożliwia programistom wskazanie, że dana metoda przesłania inną metodę. Pomaga to zapobiegać błędom wynikającym z nieprawidłowego przesłaniania metod.
  • Funkcja json_validate(): Ta nowa funkcja umożliwia sprawdzenie, czy podany ciąg znaków jest prawidłowym formatem JSON, bez konieczności dekodowania go. Jest to przydatne, gdy potrzebujemy tylko weryfikacji formatu JSON, co jest mniej zasobożerne niż pełne dekodowanie ciągu.
  • Dodatki do klasy Randomizer: Klasa Randomizer, wprowadzona w PHP 8.2, otrzymała kilka nowych metod, w tym getBytesFromString, która generuje ciąg znaków o określonej długości z losowo wybranych bajtów z podanego ciągu, oraz getFloat i nextFloat, które zwracają liczby zmiennoprzecinkowe w określonym zakresie.
  • Dynamiczne pobieranie stałych klasowych: Ta funkcja umożliwia dynamiczne odniesienie się do stałej klasy, co jest przydatne w sytuacjach, gdzie nazwa stałej nie jest znana w momencie pisania kodu.
  • Rozszerzona funkcjonalność gc_status(): Ta funkcja teraz zwraca dodatkowe informacje o Garbage Collectorze, co może być użyteczne do monitorowania i optymalizacji użycia pamięci.
  • Nowa funkcja stream_context_set_options: Ta funkcja umożliwia zmianę opcji dla strumieni kontekstu, co daje większą kontrolę nad przetwarzaniem danych strumieniowych.

Te ulepszenia w PHP 8.3 mają na celu zwiększenie wydajności, poprawę bezpieczeństwa i czytelności kodu, a także wprowadzenie nowych możliwości, które ułatwią życie deweloperom. Oprócz tych zmian, PHP 8.3 zawiera również inne usprawnienia i poprawki błędów.

Kolejne wersje PHP

Opisywany w tym artykule język programowania bezustannie się rozwija. Trudno określić, jak wiele wersji PHP 8 ostatecznie powstanie. Wszyscy twórcy stron internetowych powinni natomiast śledzić kolejne wiadomości na bieżąco. To pozwoli im trzymać rękę na pulsie i korzystać z najnowocześniejszych rozwiązań. Zapowiedzi i kolejne, oficjalnie publikowane wersje, opisujemy poniżej.

PHP 8.4

PHP 8.4, planowane do wydania 21 listopada 2024, przyniesie nowe funkcje, takie jak zwiększony domyślny koszt bcrypt oraz lepszą obsługę dużych dokumentów XML. Zmiana w bcrypt ma na celu wzmocnienie bezpieczeństwa hashowania haseł, podczas gdy ulepszenia w obsłudze XML umożliwiają skuteczniejsze przetwarzanie dużych dokumentów XML bez konieczności stosowania skomplikowanych obejść.

W jaki sposób sprawdzić wersję PHP?

Każda osoba zarządzająca stroną internetową powinna pilnować aktualności wersji PHP. Dzięki niej strona działa szybciej, co może mieć istotny wpływ m.in. na konwersję. W praktyce więc możesz wiele zyskać, praktycznie unikając jakichkolwiek kosztów. Wystarczy jedynie skorzystać z darmowej aktualizacji, gdy będzie to konieczne.

Kiedy nadejdzie czas na zmianę wersji języka programowania? Wystarczy tylko, że sprawdzisz swoją wersję języka i porównasz ją z aktualną na oficjalnej stronie PHP. Możesz to zrobić przy pomocy:

  • panelu administracyjnego hostingu (np. DirectAdmin lub cPanel),
  • panelu administracyjnego WordPressa,
  • skryptu PHP z poziomu pliku phpinfo,
  • zewnętrznych narzędzi online,
  • przeglądarki internetowej,
  • wiersza linii poleceń (SSH),
  • zapytania wysłanego do supportu.

Każdy z tych sposobów dokładnie opisaliśmy w naszym poradniku: „Jak sprawdzić wersję PHP na hostingu„. Znajdziesz tam szczegółowe instrukcje, które krok po kroku przeprowadzą Cię przez ten proces.

Jak zmienić wersję PHP?

Gdy odkryjesz, że Twój język programowania nie jest najnowszy, możesz go zaktualizować. Jeśli nadal jest wspierany, to nie ma pośpiechu. Gorzej jednak, jeśli już ma jedynie wsparcie dotyczące bezpieczeństwa. Odpowiednie działania możesz podjąć w takiej sytuacji:

  • na hostingu za pomocą panelu klienta,
  • na hostingu za pomocą pliku .htaccess.

W obu przypadkach nie należy to do czynności zaawansowanych. Jeśli masz pewne doświadczenie w zarządzaniu stroną internetową, to na pewno sobie poradzisz. Na naszej stronie znajdziesz też kompleksowy poradnik „Jak zmienić wersję PHP na hostingu na najnowszą?„. W nim szczegółowo, krok po kroku, opisaliśmy cały proces.