mDiv.pl
mDiv.pl
arrow_backBaza wiedzy
HostingWordPress10 min czytania2026-11-09

PHP 8.6 wychodzi 19 listopada. 39 na 100 wtyczek WordPressa ma w kodzie coś przestarzałego

Nowe PHP oznacza część popularnych wtyczek jako przestarzałe, w tym WooCommerce, Elementor i Yoast. Co to naprawdę znaczy, trzy zmiany, które mogą dotknąć Twojej strony od razu, i dlaczego listopad to najgorszy moment na przesiadkę.

Czarno-żółte ukośne pasy ostrzegawcze na betonowej ścianie
fot. Scott Rodgerson / Unsplash

W skrócie

19 listopada 2026 wychodzi PHP 8.6. Tydzień przed premierą ktoś przebadał sto najpopularniejszych wtyczek WordPressa na wersji kandydującej i znalazł kod oznaczony jako przestarzały w trzydziestu dziewięciu z nich. Są wśród nich WooCommerce, Elementor i Yoast, czyli wtyczki z milionami instalacji. Brzmi groźnie, a nie jest, i właśnie o to chodzi w tym tekście. Oznaczenie jako przestarzałe nie psuje niczego dzisiaj. Kod działa dalej, a konsekwencje przychodzą dopiero z PHP 9. Realnie mogą Cię dotknąć trzy inne zmiany, z których jedna potrafi zgubić koszyk klienta wracającego od operatora płatności. Rekomendacja na koniec jest prosta: nie przechodź teraz. Premiera wypada w środku sezonu przedświątecznego, osiem dni przed Black Friday, a to najgorszy możliwy moment na zmianę wersji interpretera.

Przestarzałe nie znaczy zepsute

To rozróżnienie decyduje o tym, czy ten artykuł Cię zaniepokoi, czy uspokoi.

Gdy twórcy PHP uznają jakąś funkcję za przestarzałą, kod nadal się wykonuje i strona działa tak samo jak wcześniej. Zmienia się jedno: interpreter zaczyna przy każdym użyciu zapisywać ostrzeżenie. Jeśli masz wyłączone logowanie diagnostyczne, nawet tego nie zauważysz.

Prawdziwy koszt pojawia się w dwóch miejscach. Po pierwsze, przy włączonym trybie diagnostycznym plik dziennika potrafi urosnąć o setki megabajtów w tydzień, bo ostrzeżenie zapisuje się przy każdym żądaniu. Po drugie, i ważniejsze, w PHP 9 te same konstrukcje przestaną działać i zamienią się w błędy krytyczne. To jest zapowiedź, nie wyrok, ale zapowiedź z konkretnym terminem.

Innymi słowy: masz czas, ale wiesz już, na co.

Badanie, czyli skąd te 39 na 100

Liczba nie jest szacunkiem. Pochodzi z testu przeprowadzonego 28 października 2026 na wersji kandydującej PHP 8.6 i WordPressie 7.1.1.

Metoda była trzystopniowa. Najpierw sprawdzenie składni wszystkich plików, czyli 55 760 plików PHP ze stu najpopularniejszych wtyczek z katalogu WordPress.org. Potem przeszukanie kodu pod kątem wywołań funkcji oznaczonych w 8.6 jako przestarzałe. Na końcu uruchomienie każdej wtyczki osobno na działającej instalacji i otwarcie strony głównej, wpisu, kokpitu oraz listy wtyczek.

Najczęstsze znaleziska wyglądają tak:

Konstrukcja Liczba wystąpień
spl_object_hash() 58
wartość zwracana z konstruktora 55
is_integer() 28
namespace jako stała klasy 12

Dwie pierwsze pozycje warto rozumieć, bo tłumaczą skalę. Zwracanie czegokolwiek z konstruktora było zawsze bezsensowne, bo PHP i tak tę wartość wyrzucał w milczeniu. Dopiero teraz zaczyna o tym mówić. Z kolei is_integer() to po prostu dłuższa nazwa dla is_int(), utrzymywana przez lata dla zgodności. Żadna z tych rzeczy nie jest błędem w kodzie wtyczki, to raczej pozostałości po epoce, w której PHP było bardziej wyrozumiałe.

Dane z badania są opublikowane w postaci plików do pobrania na otwartej licencji, więc każdy może je sprawdzić samodzielnie. To rzadkość przy tego typu doniesieniach i powód, dla którego traktuję tę liczbę poważnie.

Trzy zmiany, które mogą dotknąć Twojej strony od razu

Tu zaczyna się część, która naprawdę wymaga uwagi. W przeciwieństwie do oznaczeń przestarzałości, te trzy rzeczy zmieniają zachowanie od pierwszego dnia.

Bezpieczniejsze domyślne ustawienia sesji

PHP 8.6 zmienia trzy domyślne wartości dotyczące ciasteczek sesyjnych. Tryb ścisły zostaje włączony, co blokuje podszywanie się pod cudzą sesję. Ciasteczko sesyjne przestaje być dostępne dla skryptów w przeglądarce, co ogranicza skutki ataków przez wstrzyknięty kod. Atrybut określający wysyłanie ciasteczka między witrynami dostaje wartość Lax.

Dwie pierwsze zmiany to czysty zysk i nie wymagają z Twojej strony niczego. Trzecia jest tą, na którą trzeba uważać w sklepie.

Wartość Lax oznacza, że przeglądarka dołączy ciasteczko sesyjne przy zwykłym przejściu z obcej witryny, ale nie dołączy go, gdy ta witryna odeśle użytkownika metodą POST. Część operatorów płatności wraca właśnie w ten sposób. Efekt bywa taki, że klient kończy płatność, wraca do sklepu i trafia na pustą sesję, bez koszyka i bez potwierdzenia zamówienia. Pieniądze są pobrane, a klient nie widzi, że cokolwiek się udało.

Jeśli prowadzisz sklep, to jest jedyny punkt z tego artykułu, który musisz przetestować osobiście, przechodząc pełną ścieżkę płatności po zmianie wersji.

Limit łańcucha filtrów przy odczycie plików

PHP pozwalało łączyć dowolnie wiele filtrów przetwarzających strumień danych. Brzmi niewinnie, ale ta możliwość była realnym narzędziem w atakach polegających na zmuszeniu aplikacji do wczytania cudzego pliku, a potem na wykonaniu kodu. Pisaliśmy o takiej podatności przy okazji krytycznej dziury w WordPressie 7.1.2.

Od 8.6 łańcuch ogranicza się do szesnastu filtrów. Dla normalnego kodu to limit, którego nikt nie dotknie. Dla atakującego to zamknięcie wygodnej drogi.

Szybsze połączenia wychodzące

Dotąd przy każdym połączeniu szyfrowanym PHP przeprowadzało pełne uzgadnianie od zera. Teraz potrafi wznowić wcześniejszą sesję. Zysk zobaczą przede wszystkim strony, które często odpytują zewnętrzne usługi: integracje z kurierami, systemy płatności, synchronizacja stanów magazynowych. Im więcej takich wywołań, tym wyraźniejsza różnica.

Kiedy przechodzić

Nie teraz, i to z powodu, który nie ma nic wspólnego z jakością samego wydania.

PHP 8.6 pojawia się 19 listopada, osiem dni przed Black Friday. Przyjęta w branży zasada mówi, że na dwa tygodnie przed szczytem sprzedaży do sklepu wdraża się wyłącznie krytyczne poprawki bezpieczeństwa. Zmiana wersji interpretera jest przeciwieństwem krytycznej poprawki. To duża zmiana, która dotyka wszystkiego naraz, a jej skutki uboczne najchętniej ujawniają się pod obciążeniem.

We wrześniowym artykule o wyborze wersji PHP pisaliśmy, że sensowny moment na 8.6 to wiosna 2027. Badanie wtyczek tę rekomendację potwierdza. Nie dlatego, że wersja jest zła, tylko dlatego, że autorzy wtyczek potrzebują kilku miesięcy na uprzątnięcie ostrzeżeń, a Ty nie masz powodu robić tego za nich.

Na dziś właściwym wyborem pozostaje PHP 8.4, z pełnym wsparciem do końca 2028. Jeśli stoisz na 8.2, pilniejszy od 8.6 jest dla Ciebie zupełnie inny termin: 31 grudnia 2026 ta wersja przestaje dostawać łatki bezpieczeństwa.

Jak sprawdzić swoją stronę już dziś

Nie musisz czekać na premierę, żeby się dowiedzieć, ile ostrzeżeń Cię czeka. Wystarczy włączyć dziennik diagnostyczny na kopii testowej, nigdy na produkcji.

W pliku wp-config.php środowiska testowego:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Potem przeklikaj stronę główną, kokpit, listę wtyczek, a w sklepie dodatkowo koszyk i kasę. Następnie policz, co się nazbierało:

grep -c "Deprecated" wp-content/debug.log
grep -o "Deprecated:[^ ]* [^,]*" wp-content/debug.log | sort | uniq -c | sort -rn | head -20

Drugie polecenie pokaże, które komunikaty powtarzają się najczęściej. Jeśli wśród nich dominuje jedna wtyczka, masz konkretnego kandydata do aktualizacji albo wymiany. Po teście wyłącz dziennik, bo przy włączonym trybie diagnostycznym rośnie w tempie, które potrafi zapełnić dysk.

Pamiętaj przy tym, że dziś badasz zachowanie na swojej obecnej wersji PHP. Pełny obraz dla 8.6 dostaniesz dopiero, gdy hosting udostępni tę wersję na środowisku testowym.

Źródła

Czego nie musisz robić sam

Zmiana wersji PHP jest odwracalna i w typowej stronie firmowej zajmuje kwadrans. Kłopot polega na tym, że ten kwadrans trzeba znaleźć wtedy, gdy nie jest środek sezonu, i że po zmianie ktoś musi przez tydzień zaglądać w logi.

W ramach opieki nad stroną pilnujemy terminów wsparcia wersji PHP, testujemy zgodność wtyczek na środowisku kopii i przeprowadzamy zmianę w oknie, w którym nic ważnego się nie dzieje. Jeśli nie wiesz, na jakiej wersji stoisz ani kiedy przestanie dostawać łatki, napisz do nas.

PHP 8.6 to dobre wydanie, które przyjdzie we właściwym momencie. Ten moment po prostu nie wypada w listopadzie.

Mirosław Parcz

O autorze

Mirosław Parcz

Programista i administrator serwerów

Programista i administrator serwerów z 16+ letnim doświadczeniem. Specjalizacja: WordPress/WooCommerce, aplikacje webowe, hosting, wydajność, bezpieczeństwo, integracje AI.

Spodobało się? Podaj dalej.

LinkedIn

Potrzebujesz pomocy?

mDiv może zająć się tym za Ciebie. Bezpiecznie, z backupem i bez przestojów.

Napisz do mnie