PHP 8: Kompletny przewodnik
Opublikowany: 2021-01-0526 listopada 2020 r. wkroczyliśmy w nowy świat PHP 8. Każda aktualizacja PHP zawiera cały szereg nowych, ważnych funkcji. Chociaż nie wszystkie aktualizacje są ważne dla większości zwykłych użytkowników, nawet inne aktualizacje są zbyt niszowe dla większości doświadczonych programistów WordPress.
Ale bez względu na to, na jakim poziomie rozwoju pracujesz, aspekty nowej wersji, takie jak zwiększenie szybkości i wprowadzanie zmian, które mogą zaszkodzić istniejącemu kodowi, mogą negatywnie wpłynąć na Twój codzienny przepływ pracy.
W tym przewodniku omówimy najważniejsze zmiany w nowej wersji PHP 8. Zanurzmy się w szczegóły.
Dlaczego pojawiają się aktualizacje PHP
Jako silnik PHP nieustannie się zmienia. Nowe bity są zawsze modyfikowane lub dodawane, aby pomóc zoptymalizować kod i ułatwić pracę z PHP.
Twórcy wtyczek i motywów WordPress, wraz z programistami stron internetowych, muszą być na bieżąco ze zmianami PHP, gdy się pojawiają. W ten sposób będziesz o krok przed grą i unikniesz przedzierania się przez strony dokumentacji po kilku kolejnych aktualizacjach.
Każda nowa wersja PHP ma na celu wprowadzenie pozytywnych zmian w środowisku programistycznym. Niestety zdarzają się sytuacje, w których pewne poprawki mogą uszkodzić istniejący kod.
Gdy niezgodne, wsteczne lub nieaktualne atrybuty kolidują z nowymi aktualizacjami PHP, może to doprowadzić do uszkodzenia całej witryny lub spowodować, że niektóre obszary witryny przestaną działać.
Dobrym pomysłem jest wiedzieć, jakie potencjalnie przełomowe zmiany zostały wydane, aby można było je rozwiązać bezpośrednio w niestandardowym kodzie. Pomaga to również w korzystaniu z nowszego kodu, który ma bardziej zoptymalizowane wyrażenia.
Jednak nawet jeśli w swojej karierze nie dotknąłeś ani jednego fragmentu niestandardowego kodu, gdy panel WordPress dodaje powiadomienie o konieczności aktualizacji PHP dla zaktualizowanej wersji PHP, będziesz musiał zdecydować, czy chcesz uaktualnić albo nie.
Niezmiennie odpowiedź na to pytanie prawie zawsze brzmi tak. Ale zanim to zrobisz, mądrze jest przejrzeć główne zmiany funkcji i upewnić się, że nie ma nic, co może powodować problemy. Jak mówi stare powiedzenie: „Lepiej być bezpiecznym niż żałować”.

Co nowego w wydaniu PHP 8
To wydanie PHP nie jest w żadnym razie największą aktualizacją, jaka się pojawiła. Ale wciąż jest kilka ekscytujących zmian, którym powinniśmy się przyjrzeć.
Pod pewnymi względami ulgą jest to, że PHP 8 jest stosunkowo małą aktualizacją. Oznacza to, że jest mniej istotnych zmian, które mogą powodować problemy w istniejącym kodzie.
Innymi słowy, obecne wydanie PHP oferuje kilka świetnych nowych funkcji bez konieczności spędzania godzin na rozwiązywaniu problemów.
Chociaż w tej wersji PHP wprowadzono kilka dodatkowych zmian, ten przewodnik omówi te najbardziej istotne.
Kompilator Just In Time (JIT)
Najbardziej ekscytującym i na pewno największym dodatkiem do nowej wersji PHP jest kompilator Just In Time (JIT).
Jak zapewne wiesz, PHP to język, który jest interpretowany. Oznacza to, że działa w czasie rzeczywistym, a nie we wcześniej ustalonym czasie uruchamiania po skompilowaniu.
To, co JIT wnosi do tabeli dla PHP, to skompilowany kod. Wraz ze skompilowanym kodem pojawia się lepsza wydajność w określonych sytuacjach.
Jeśli jesteś podobny do wielu programistów PHP, prawdopodobnie pracujesz z aplikacjami internetowymi. Niestety JIT nie pomoże zbytnio w aplikacjach internetowych. Ale oznacza ogromną poprawę, jeśli chodzi o zadania takie jak:
- Analiza danych
- renderowanie 3D
- AI
- Dodatkowe procesy, których uruchomienie zajmuje dużo czasu
Chociaż niekoniecznie są to najbardziej popularne obecnie aplikacje PHP, programiści zorientowani w przyszłość zdecydowanie bardziej rozwijają PHP.
Kompilator JIT pomaga uczynić PHP bardziej elastycznym.
W rzeczywistości JIT prawie gwarantuje, że otworzy horyzonty PHP i przyciągnie nowych programistów, którzy są zainteresowani wykorzystaniem go do nowych celów.
W przypadku istniejących projektów prawdopodobnie nie da to wiele.
Przed zaimplementowaniem JIT upewnij się, że przetestowałeś go w izolowanym środowisku, aby sprawdzić, czy jest jakaś poprawa wydajności.
Atrybuty
Nowa wersja PHP obsługuje atrybuty. Są to małe fragmenty metadanych, które dodajesz do swojego kodu, takie jak parametry, klasy i funkcje.
Oznacza to, że nie musisz już używać docblocks jako standardowego obejścia. Chociaż brzmi to jak niewielka zmiana, w rzeczywistości znacznie ułatwia życie programistom PHP.
Możesz teraz dodać dowolną liczbę atrybutów do dowolnego fragmentu indywidualnego kodu, a następnie zaimportować je za pomocą instrukcji use.
Możesz nawet dodawać parametry do atrybutów.
Aby dodać atrybut do kodu, po prostu dodaj dwa znaki „mniejsze niż” i dwa „większe niż” otaczające atrybut.
Należy zauważyć, że atrybuty nie są kompatybilne wstecz. Spowodują błędy, jeśli zostaną przeniesione do starej wersji PHP.
Jak zapewne wiesz, standardowe obejście przy użyciu docblock jest w pełni funkcjonalne. Ale zawsze było też dość niezgrabne. W nowej wersji PHP możesz teraz bezpośrednio dodawać atrybuty.
Chociaż jest to mały dodatek do PHP, jego konsekwencje są ogromne.
Nowe wyrażenie dopasowania
Instrukcje Switch były bardziej niezawodną wersją instrukcji if. Jednak nowe wyrażenia dopasowania w PHP jeszcze bardziej udoskonalają tę koncepcję.
To jest krótsze i bardziej rygorystyczne, co pomaga lepiej łapać błędy. Łączy również warunki i nie wymaga żadnych instrukcji przerwania.
W ten sposób nowe wyrażenia dopasowania są wyraźną poprawą.
Switch nadal ma przewagę nad dopasowaniem, ponieważ ma możliwość używania wielu wyrażeń. Ale poza tym rozważ poczytanie na temat wyrażeń dopasowania.
Jak dotąd wyglądają jak doskonały zamiennik, który możesz chcieć wykorzystać.
Typy Unii
Jedną z kluczowych części PHP są typy: Przypisywanie zmiennej jako boolean, integer, null i tak dalej.
Przed tym wydaniem PHP można było przypisywać zmienne tylko z jednym typem. PHP 8 umożliwia przypisanie dwóch lub więcej typów, inaczej nazywanych typem związku.
Jako przykład będziesz mógł przypisać typ zmiennoprzecinkowy i całkowity i możesz użyć dowolnego z nich. Są one określone linią między typami, np. float|int.
Oczywiście nie będzie można łączyć void z innymi typami, ponieważ wzajemnie się wykluczają.
Typy nadmiarowe lub zduplikowane, takie jak float|float, również nie będą działać.
W starszych wersjach PHP można było użyć adnotacji PHPDoc, aby spróbować utworzyć funkcjonalny typ unii. Teraz możesz pominąć tego rodzaju obejście i po prostu przypisać zmienne z wieloma typami.
Statyczny zwrot i typy mieszane
Jako programista powszechnie wiadomo, że zwroty PHP są używane do zwracania wartości funkcji. Przed tym wydaniem nie było możliwości używania typu statycznego.
„Parent” i „self” były typami zwrotów, które były poprawne, ale „static” nie. Ten problem został w pełni rozwiązany w nowej wersji PHP.
Chociaż nie jest to niezwykle powszechny przypadek użycia, jeśli się pojawi, na pewno będziesz zadowolony, że masz do niego dostęp.

Znajdziesz także nowy typ mieszany. Można go dokładniej opisać jako pseudotyp, ponieważ reprezentuje każdy inny typ, który istnieje w PHP.
Najlepiej używać go, gdy masz do czynienia z sytuacjami, które wymagają pracy z wieloma różnymi typami.
Mieszany będzie domyślny, jeśli nie wybierzesz określonego typu.
Często lepiej jest użyć nowego typu związku niż mieszanego. Dzieje się tak, ponieważ prawdopodobnie będziesz chciał być bardziej szczegółowy.
Jednak ten nadal będzie ci służył.
W rzeczywistości żaden z nich nie jest tak duży jak typ związkowy, ale zdecydowanie oznacza poprawę.
Nowe funkcje PHP 8
Nowa wersja PHP zawiera nowe funkcje, z którymi możesz pracować.
- str_starts_with i str_ends_with – to sprawdzi, czy ciąg kończy się, czy zaczyna od określonej linii
- fdiv – pozwoli to na dzielenie, które będzie konsekwentnie reagowało przy dzieleniu przez zero
- str_contains – podobne do str_starts_with i str_ends_with, ale sprawdza pełny ciąg
- get_debug_type – działa podobnie do gettype , ale zwróci dodatkowe informacje, takie jak nazwa klasy
- get_resource_id – ułatwia to uzyskanie identyfikatora zasobu, takiego jak połączenie z bazą danych
- preg_last_error_msg – zwraca komunikat o błędzie, który jest czytelny w prostym języku
Przetestuj niektóre z tych nowych funkcji, aby zobaczyć, jak najlepiej je wykorzystać.
Nazwane argumenty
Niektórzy mogą to kochać, a niektórzy mogą nią pogardzać. Tak czy inaczej, nazwane argumenty znajdują się w nowej wersji PHP.
Argumenty umożliwiają przekazywanie danych do funkcji. Nazwane argumenty pozwalają zrobić to samo, przekazując nazwę argumentu, a nie kolejność.
Nadal będziesz mógł łączyć je z uporządkowanymi argumentami. Ale w razie potrzeby będziesz mógł pominąć opcjonalne parametry.
Praktycznie rzecz biorąc, będzie to oznaczać czystszy kod i niewiele błędów. W końcu im bardziej ciasny kod, tym lepiej. Dużo łatwiej się z nim pracuje.
Istnieje prawdopodobieństwo, że może to spowodować problem ze zmianą nazw argumentów i wsteczną kompatybilnością, co może powodować przerwy w starszych wersjach PHP. Ale dla wielu programistów i programistów te nazwane argumenty są mile widzianą zmianą.
Przełomowe zmiany w PHP 8
Nowe wydanie PHP zawiera kilka przełomowych zmian. Może to powodować błędy, jeśli uaktualnisz lub wrócisz do starych wersji PHP. Spójrz na tę listę najważniejszych zmian i zobacz, które będą miały na Ciebie wpływ.
- Ostrzeżenia silnika zostały przeklasyfikowane w taki sposób, aby przedstawiały odpowiedni poziom istotności, np. powiadomienia, ostrzeżenia i błędy krytyczne. Potraktuj to jako niewielką przełomową zmianę, która nie wpłynie na wiele projektów.
- TypeError będzie teraz rutynowo wyświetlany w funkcjach wewnętrznych. Wpływa to na kompatybilność wsteczną bardziej, niż możemy sobie jeszcze zdawać sprawę, ale mimo to jest to solidna zmiana.
- Wprowadzono wiele zmian w poziomach raportowania błędów, które wcześniej były wyciszone i ignorowane. Innymi słowy, nowe błędy, których być może wcześniej nie widziałeś, powinny teraz się rozprzestrzeniać.
- Sortowanie jest bardziej niezawodne i stabilne. Chociaż PHP 7 wprowadziło kilka dużych zmian w sortowaniu, najnowsza aktualizacja powoduje znacznie mniej szkód w istniejącym kodzie.
- Nazwy w przestrzeni nazw są teraz pojedynczym tokenem. Nie mogą mieć w środku spacji. Wpływ tej zmiany jest niewielki i prosty do naprawienia.
- We wcześniejszych wersjach PHP metody, które miały nazwę pasującą do klasy, były interpretowane jako konstruktory. W nowej wersji będziesz musiał użyć metody __construct().
Istnieją dziesiątki innych drobnych aktualizacji, które rzadko powodują jakiekolwiek problemy. Ogólnie rzecz biorąc, nie będziesz mieć zbyt wielu problemów z obecną aktualizacją PHP.
Aktualizacja wersji PHP w WordPress
Jako programista WordPress wiesz, jak ważne jest aktualizowanie swojej wersji PHP. Niepokojąca jest świadomość, że bardzo znaczna część użytkowników WordPressa nadal korzysta z PHP 5.6, co jest olbrzymią odpowiedzialnością.
Nawet jeśli korzystasz z PHP 7.4 i uważasz, że jesteś na bieżąco, zdecydowanie nadszedł czas na aktualizację do najnowszej wersji PHP.
Uruchamianie witryny WordPress na starszej wersji PHP stanowi poważne zagrożenie bezpieczeństwa. Nieaktualne wersje PHP mają możliwe do wykorzystania przepływy bezpieczeństwa, z których regularnie korzystają hakerzy.
Jedynym sposobem na załatanie istniejących dziur jest ciągłe aktualizowanie PHP.
Będziesz także chciał uruchomić potężną wtyczkę bezpieczeństwa WordPress, aby wzmocnić ochronę bezpieczeństwa.
Innym powodem aktualizacji PHP jest szybkość. Z każdą aktualizacją pojawiają się większe prędkości i bardziej zoptymalizowane funkcje. Oczywiście największa zauważalna różnica dotyczyła PHP 5.6 i 7.4. Ale na pewno zauważysz wzrost prędkości dzięki najnowszej aktualizacji.
Kompatybilność jest ostatnim powodem, dla którego ważne jest aktualizowanie PHP w WordPressie.
Nieaktualna wersja PHP może powodować wiele różnych problemów, które mogą powodować usterki lub całkowicie zepsuć witrynę.
Poza tym istnieją motywy i wtyczki, które do działania wymagają w pełni aktualnej wersji PHP.
Przed uruchomieniem aktualizacji upewnij się, że masz uruchomioną wtyczkę do tworzenia kopii zapasowych WordPress na wypadek konfliktów po uruchomieniu aktualizacji.
Aktualizacja twojej wersji PHP jest dość prosta. Wszystko, co musisz zrobić, to zalogować się do swojego cPanel lub panelu administracyjnego hosta, którego używasz, znaleźć menedżera wersji PHP i zaznaczyć najnowszą wersję. Ale zanim uruchomisz aktualizację, sprawdź u swojego hosta, czy obsługuje on najnowszą aktualizację PHP. Niektóre mogą działać na starszym oprogramowaniu.
Aby uzyskać dodatkowe informacje na temat PHP i WordPress, sprawdź oficjalną dokumentację WordPress.org na temat WordPress i PHP 8.
Podsumowanie: PHP 8 i przyszłość PHP
Chociaż nie jest to potworna aktualizacja, którą były PHP 7.0 – 7.4, PHP 8 wciąż ma wiele do zaoferowania, z których możesz skorzystać.
Od kompilatora JIT po nowe atrybuty, wyrażenia dopasowania i inne przydatne funkcje dla programistów, czas zapoznać się z tą ważną nową wersją PHP.
Które części tej aktualizacji przewidujesz, że będą najczęściej wykorzystywane w codziennym przepływie pracy?
Kristen pisze samouczki, które pomagają użytkownikom WordPressa od 2011 roku. Zwykle można ją znaleźć, gdy pracuje nad nowymi artykułami na blogu iThemes lub opracowuje zasoby dla #WPprosper. Poza pracą Kristen lubi prowadzić dzienniki (napisała dwie książki!), wędrować i biwakować, gotować i codzienne przygody z rodziną, mając nadzieję na bardziej obecne życie.
