WordPress en PHP 8

11-01-2022

WordPress en PHP8

Al sinds November 2020 is PHP 8.0 officieel beschikbaar. Deze nieuwe versie van PHP heeft een hoop verbeteringen en voordelen. Echter zijn er in PHP 8.0 ook een hoop functies gewijzigd en zijn een aantal commando’s verdwenen en vervangen door andere commando’s waardoor upgraden niet altijd zomaar mogelijk is. WordPress kan een hoop voordelen hebben van PHP 8.0 waardoor websites sneller laden en beter beveiligd kunnen worden. Helaas heeft het lang geduurd voordat WordPress (en plugin’s) helemaal compatible waren. Waarom WordPress voordelen heeft van PHP 8.0 en het lang geduurd heeft voordat dit goed bruikbaar was leggen we in dit blog uit.

 

PHP 8.0

PHP is één van de meestgebruikte programmeertalen voor websites en online applicaties waaronder WordPress. Het grootste gedeelte van WordPress is geschreven in PHP en de snelheid en veiligheid van de gebruikte PHP versie hebben dan ook grote invloed op een WordPress website. De laatste PHP versie voor PHP 8.0 was PHP 7.4. PHP 8.0 bevat een zeer groot aantal veranderingen ten opzichte van PHP 7.4. Er zijn meerdere functies toegevoegd waarvan de belangrijkste de JIT (Just In Time) compiler is en bestaande functies en commando’s zijn verbeterd of aangepast. 

Een aantal van deze wijzigingen zijn niet “backwards compatible”, dit betekent dat functies of commando’s zo zijn aangepast dat een website of applicatie welke gemaakt is voor PHP 7.4 niet goed zal werken op PHP 8.0. Doordat WordPress voor het grootste gedeelte bestaat uit PHP-code en plugin’s en thema’s vaak ook voor een groot gedeelte in PHP geschreven zijn moeten zowel WordPress als alle plugin’s en thema’s van een website zijn aangepast aan PHP 8.0 voordat dit probleemloos werkt.

 

JIT-compiler

De grootste performance verbetering in PHP 8.0 is het resultaat van de JIT-compiler. De JIT-compiler is nieuw geintroduceerd in PHP 8.0. Een compiler vertaalt de geschreven (PHP) code naar instructies welke een computer of server kan verwerken, vervolgens worden deze instructies verwerkt door de processor van de computer of server waarna deze een output geeft. De JIT compiler slaat hierin een stap over door de code niet eerst te vertalen maar direct met de processor te communiceren en zelf de output te verzorgen. Daarnaast wordt de code niet gelijk voor een hele pagina van een website uitgevoerd maar pas op het moment dat dit nodig is.

Helaas bestaat WordPress uit meer dan alleen PHP-code. Hierdoor is de performance verbetering nog beperkt echter is de verwachting dat de functionaliteit in de komende PHP versies verder wordt uitgebreid waardoor de performance verbetering groter zal zijn.

 

Nieuwe PHP functies

Naast de JIT-compiler zijn er nog een aantal nieuwe functies aan PHP 8.0 toegevoegd, hieronder vallen str_contains, str_starts_with(), str_ends_with() en get_debug_type. De eerste twee functies maken het zoeken in een variabele eenvoudiger en sneller. Deze functies bieden met name voordelen bij grote websites waar veel verschillende plugin’s op elkaar inhaken. Wij verwachten dat met name webshops met Woocommerce en veel etra plugin’s voordeel van deze functies kunnen hebben.

Met de get_debug_type functie kan het type van een variabele weergeven. Deze functie zal met name door ontwikkelaars gebruikt worden wanneer PHP-scripts geschreven worden.

 

Foutmeldingen en overige verbeteringen

Naast de nieuwe JIT-compiler en de nieuwe PHP functies zijn ook de foutmeldingen een stuk duidelijker geworden waardoor het zoeken en oplossen van fouten in PHP-code eenvoudiger moet worden. Hierdoor kunnen ontwikkelaars sneller fouten oplossen en zijn fouten in websites makkelijker te achterhalen. Ook zijn er nog een groot aantal verbeteringen van bestaande functies waardoor PHP flexibeler in te zetten is en berekeningen en verwerkingen van data sneller uitgevoerd kunnen worden. 

WordPress en PHP 8.0

WordPress is officieel sinds versie 5.6.0 compatible met PHP 8.0. In de praktijk betekent dit dat wanneer WordPress zonder plugin’s of thema’s geïnstalleerd is dat er geen foutmeldingen optreden wanneer PHP 8.0 ingeschakeld wordt. Echter maakt WordPress 5.6 vrijwel geen gebruik van de nieuwe mogelijkheden van PHP 8.0 waardoor de performance en werking vergelijkbaar is met PHP 7.4. Inmiddels is WordPress 5.8.3 al beschikbaar en deze maakt al veel meer gebruik van de mogelijkheden van PHP 8.0.

WordPress heeft  van zichzelf maar beperkte functionaliteit dus voor een functionele website zijn een thema en plugin’s nodig. Ook deze zullen allemaal compatible moeten zijn met PHP 8.0 voordat een website gebruik kan maken van PHP 8.0. Omdat er veel wijzigingen zijn in PHP 8.0 en plugin’s en thema’s ook nog op PHP 7.4 moeten blijven werken kan het ontwikkelaars veel tijd kosten om ervoor te zorgen dat een plugin of thema goed werkt met PHP 8.0. Hierdoor zijn een groot aantal plugin’s en thema’s pas sinds korte tijd compatible met PHP 8.0

Wanneer WordPress, de plugin’s en het thema van uw WordPress website allemaal compatible zijn met PHP 8.0 dan raden wij aan om het webhostingpakket in te stellen op PHP 8.0 zodat uw website hier gebruik van kan maken. We zien bij WordPress websites welke omgeschakeld zijn van PHP 7.4 naar PHP 8.0 gemiddeld een laadtijdverbetering van circa 10%.

PHP 8.1

Inmiddels is ook PHP 8.1 beschikbaar en in te stellen in onze webhostingpakketten. We raden echter nog af om hiervan gebruik te maken. Op dit moment is er nog geen ondersteuning voor belangrijke modules zoals Opcache en Redis voor PHP 8.1 waardoor websites niet goed gebruik kunnen maken van caching en hierdoor trager laden.

Wanneer deze modules wel beschikbaar worden dan raden wij wel aan om met PHP 8.1 te testen. Uit de eerste tests welke wij hebben uitgevoerd blijkt dat websites circa 15% sneller laden dan op PHP 8.0 en tot 30% sneller dan op PHP 7.4.

PHP 8.0 instellen

Wanneer u uw pakket wilt omzetten naar PHP 8.0 (of 8.1) dan kunt u de handleiding volgen welke hier te vinden is: https://www.hostingsquad.nl/helpdesk-webhosting/hoe-stel-ik-de-php-versie-van-mijn-pakket-in/ Wanneer u website problemen geeft na het omzetten van uw webhostingpakket naar PHP 8.0 dan kunt u dit eenvoudig terugzetten naar PHP 7.4. Wanneer u de PHP versie wijzigt dan moet u opletten dat de Opcache en Redis modules ingeschakeld zijn voor een optimale performance.

Heeft u nog vragen over PHP 8 of onze WordPress pakketten?  Dan kunt u altijd contact met ons opnemen.