Co nowego w PHP 8.5?
PHP 8.5 to kolejna ważna aktualizacja języka PHP – oficjalnie określana jako „major update”. Wersja ta, wydana w listopadzie 2025, przynosi szereg usprawnień poprawiających wygodę programowania i nowoczesność języka. Najistotniejsze zmiany obejmują zarówno nowe konstrukcje składniowe, jak i rozbudowę wbudowanych funkcji czy zoptymalizowanie działania silnika PHP.
PHP 8.5 – najważniejsze nowości i zmiany
Nowe rozszerzenie URI
W PHP 8.5 pojawiło się natywne rozszerzenie URI, które umożliwia bezpieczne analizowanie i modyfikowanie adresów internetowych zgodnie ze standardami RFC 3986 i WHATWG. Dzięki temu nie trzeba już polegać wyłącznie na archaicznej funkcji parse_url – można korzystać z rozbudowanego API do parsowania, normalizacji i obsługi URL-i. Rozszerzenie bazuje na bibliotekach uriparser i Lexbor, co zapewnia wydajność i zgodność ze specyfikacją. Dla programistów oznacza to bardziej precyzyjną i stabilną pracę z łączeniem się do zasobów sieciowych.
Operator pipe (|>) dla łańcuchów wywołań
PHP 8.5 wprowadza operator pipe (|>) znany z innych języków funkcyjnych. Pozwala on łączyć wywołania kolejnych funkcji w tzw. łańcuch, bez potrzeby definiowania zmiennych pomocniczych. Jak podaje dokumentacja, operator ten umożliwia „łączenie wywołań funkcji od lewej do prawej, bez zmiennych pośrednich”. W praktyce poprawia to czytelność kodu – zamiast zagnieżdżonych wywołań (które są trudniejsze do odczytania), można zapisać operacje kolejno jedna po drugiej. Dzięki temu kod staje się prostszy do zrozumienia i utrzymania.
Klonowanie z modyfikacją obiektu (Clone With)
Nowością jest także rozszerzenie mechanizmu klonowania obiektów, zwane Clone With. Teraz podczas klonowania można od razu podać tablicę z nadpisywanymi właściwościami – PHP sklonuje obiekt i uaktualni wskazane pola. Jak wyjaśnia dokumentacja: możliwe jest „aktualizowanie właściwości podczas klonowania obiektu przez przekazanie tablicy asocjacyjnej do funkcji clone(). To ułatwia implementację wzorca „with-er” (wzorzec tworzenia zmodyfikowanej kopii obiektu, np. w klasach tylko do odczytu). Dla deweloperów oznacza to prostsze i bardziej zwięzłe operacje na niemutowalnych obiektach.
Atrybut #[\NoDiscard] – wykorzystanie wartości zwracanej
PHP 8.5 wprowadza atrybut #[\NoDiscard], który pomaga zapobiegać nieświadomemu ignorowaniu ważnych wartości zwracanych przez funkcje. Jeżeli funkcja oznaczona tym atrybutem zwróci wartość, a kod ją zignoruje, PHP wyświetli ostrzeżenie. Jak podaje oficjalna strona: atrybut ten ostrzega, „gdy wartość zwracana nie zostanie użyta, poprawiając bezpieczeństwo interfejsu API”. Dzięki temu programista od razu dowie się, że zaniedbał użycie istotnego wyniku działania funkcji. To ważna zmiana w kontekście jakości kodu – ułatwia wychwycenie potencjalnych błędów tam, gdzie pominięcie zwracanej wartości mogłoby prowadzić do nieprawidłowego działania aplikacji.
Zamknięcia w wyrażeniach stałych
Kolejną zmianą wpływającą na elastyczność języka jest wsparcie dla statycznych funkcji anonimowych i first-class callables w wyrażeniach stałych. Teraz można używać zamknięć (ang. closures) i nazwisk funkcji jako części definicji stałych klas, parametrów czy atrybutów, nawet w kontekście kompilacji. Oficjalnie: „statyczne zamknięcia i first-class callables mogą być używane w wyrażeniach stałych”. Otwiera to nowe możliwości np. przekazywanie anonimowej logiki bezpośrednio do adnotacji czy przypisywanie funkcji domyślnym wartościom parametrów w bardziej bezpośredni sposób.
Trwałe uchwyty cURL
W obszarze operacji sieciowych ważnym dodatkiem jest funkcja curl_share_init_persistent(). Umożliwia ona utworzenie „persistent share handle” dla biblioteki cURL, który nie jest niszczony po zakończeniu zapytania PHP. Jeżeli w kolejnych wywołaniach (requestach) występuje ten sam zestaw opcji, uchwyt jest ponownie wykorzystywany, co eliminuje koszt ponownej inicjalizacji połączenia. To przyspiesza skrypty wielokrotnie komunikujące się z tymi samymi hostami (np. pobierające zasoby z API), zmniejszając narzut wydajnościowy i czas oczekiwania.
Nowe funkcje tablicowe
PHP 8.5 dodaje dwie przydatne funkcje: array_first() i array_last(), zwracające odpowiednio pierwszy lub ostatni element tablicy. Jeżeli tablica jest pusta, funkcje zwracają null. Jak podaje dokumentacja: funkcje te „zwracają pierwszy lub ostatni element tablicy; gdy tablica jest pusta, zwracane jest null”. Dzięki nim można łatwo pobrać skrajne elementy tablicy bez ręcznej obsługi pustych kolekcji, co czyni kod krótszym i bardziej czytelnym.
Inne usprawnienia i diagnostyka
PHP 8.5 zawiera także szereg mniejszych, ale istotnych poprawek silnika i składni. Warto wymienić między innymi:
- Bogatsze informacje o błędach – błędy krytyczne (np. przekroczenie limitu czasu wykonania) zawierają teraz pełny backtrace, co znacznie ułatwia ich diagnozowanie.
- Rozszerzone możliwości atrybutów – atrybuty można teraz stosować do stałych klas (tak samo jak do metod czy właściwości), a atrybut
#[\Override]działa także na właściwościach klas. - Inne – dodano np. funkcje
get_error_handler()iget_exception_handler()(umożliwiające dostęp do bieżących handlerów), wsparcie dla nowego parametru „partitioned” w funkcjachsetcookie(), a także metody DOM do szukania po klasie czy wstawiania HTML. Wiele drobnych ulepszeń dotyczy też spraw bezpieczeństwa (tymczasowa walidacja atrybutów) czy czystości kodu (ostrzeżenia przy niejednoznacznych konwersjach i rzutowaniach).
Czy PHP 8.5 jest dostępne w cal.pl?
Tak. PHP 8.5 jest dostępne w cal.pl. Na naszych serwerach możesz samodzielnie wybrać wersję PHP, z której ma korzystać Twoja strona lub aplikacja, bez kontaktu z obsługą techniczną i bez przestojów. Zmiany wykonasz wygodnie z poziomu panelu DirectAdmin.
Udostępniamy szeroki wybór wersji PHP, dzięki czemu możesz bezpiecznie testować nowe wydania (takie jak PHP 8.5) lub pozostać przy starszej wersji, jeśli Twój projekt tego wymaga. To szczególnie ważne przy większych aplikacjach, gdzie aktualizacja PHP musi być dobrze zaplanowana.
PHP 8.5 możesz uruchomić zarówno dla całej domeny, jak i dla wybranego katalogu, co ułatwia stopniowe wdrażanie nowości lub testy kompatybilności. W każdej chwili możesz też wrócić do poprzedniej wersji. Dzięki temu w cal.pl masz pełną kontrolę nad środowiskiem PHP i możesz korzystać z najnowszych możliwości języka dokładnie wtedy, gdy jesteś na to gotowy bez presji i bez ryzyka dla działającej strony.
Znaczenie PHP 8.5 w rozwoju języka
Podsumowując, PHP 8.5 wpisuje się w trend stopniowego unowocześniania języka i poprawy ergonomii dla programistów. Oficjalne ogłoszenie podkreśla, że jest to „major update” przynoszący wiele nowości. Wprowadzone funkcje takie jak operator pipe czy rozszerzone klonowanie obiektów, które były znane z innych nowoczesnych języków i zostały zaadaptowane w PHP, by kod stał się bardziej czytelny. Z kolei udogodnienia jak nowe API URI czy persistent cURL pomagają w codziennej pracy z danymi sieciowymi. Dodanie kontroli wykorzystania wartości zwracanych (NoDiscard) czy pełniejszy backtrace błędów świadczą o dbałości o jakość i bezpieczeństwo kodu. Dzięki tym zmianom PHP 8.5 czyni istotny krok naprzód: jest szybszy, czystszy i bardziej przyjazny dla deweloperów, co pozytywnie wpływa na rozwój całego ekosystemu PHP.
