Compatibilitat De WordPress Amb PHP 8

Tetant PHP8 amb wordPress

Darrera actualització:

El 26 de novembre del 2020, PHP 8 es va publicar en la seva primera “release”. Aquesta darrera versió de PHP ofereix noves funcionalitats que prometen millorar la seguretat i el rendiment dels nostres webs WordPress.

WordPress Core ja és compatible amb PHP 8.0 des de la seva versió 5.6

Ara bé, la qüestió és, podem ja actualitzar el nostre web?

En aquest post analitzem els principals canvis i la compatibilitat amb WordPress.

Table of Contents

Quines millores de rendiment porta PHP 8?

La característica de rendiment més esperada que ve amb PHP 8 és JIT, la compilació “Just in time”.

PHP és un llenguatge interpretat, cosa que significa que es tradueix a codi de màquina just quan s’executa. JIT realitza un seguiment del codi que s’utilitza amb més freqüència i intenta optimitzar-ne la traducció a codi de màquina perquè pugui reutilitzar-se. Això pot resultar en una millora important del rendiment en determinades situacions.

La “RFC proposal” descriu JIT de la següent manera:

“PHP JIT s’implementa com una part gairebé independent de OPcache. JIT pot estar o no habilitat en temps de compilació i execució de PHP. Quan està habilitat, el codi natiu dels arxius PHP s’emmagatzema en una regió addicional de la memòria compartida OPcache i “op_array→opcodes[].handlers” manté els punters als punts d’entrada del codi JIT”.

https://wiki.php.net/rfc/jit

Rendiment de WordPress amb PHP 8 JIT

Les proves de compilació de PHP 8 mostren que JIT faria que les càrregues de treball intenses en CPU s’executin significativament més ràpid.

L’enfocament de compilació JIT en PHP 8 significa un rendiment significativament millor per a càlculs numèrics i un rendiment lleugerament millor per a aplicacions web PHP típiques.

Entorn de provesMillores de rendiment
Suite de referència de PHP3 vegades més ràpid
WordPress3-5% més ràpid
Aplicacions basades en FrameworksSense diferència
font: Explorant el nou compilador JIT de PHP | Zend per Perforce

JIT funciona millor amb processament intensiu de CPU, com càlculs numèrics repetits o anàlisi de Big Data. Donat això, WordPress es beneficiarà de la compilació JIT només en aquelles funcions principals de WordPress que són cridades constantment, però per ser honestos, això està lluny de ser considerat una tasca intensiva en CPU.

Comparant el rendiment de WordPress PHP 8 JIT, un cas real

En un entorn de proves hem comparat un lloc de WordPress amb PHP8.2 amb i sense JIT.

El lloc de prova va ser triat com un objectiu clar a causa del seu:

  • Temps de generació de pàgina enorme: més de 2 segons.
  • Temps de processament de base de dades baix: 36 milisegons.

Aquesta primera captura de pantalla sense el compilador JIT, mostra un Temps de Generació de Pàgina de 2.3245 segons:

PHP8 with JIT disabled
Performance metrics provided by Query Monitor – WordPress Plugin | WordPress.org

Després d’activar el compilador JIT:

PHP8 amb JIT activat

El “Temps de generació de la pàgina” amb JIT habilitat mostra 2.1387 segons. El que significa una reducció del 8%

Val la pena activar PHP 8 JIT per a WordPress?

Per obtenir aquesta millora del 8% en el rendiment, no sempre val la pena.

El fet és que sempre has de tenir en compte que la primera execució serà més lenta. En aquesta primera execució, es compila el codi i es gestiona la seva caché per a trucades posteriors.

Si el codi compilat per PHP 8 JIT no es reutilitza en diverses sol·licituds,
considera desactivar JIT i
utilitzar un sistema de caché que pugui pregenerar les teves pàgines.

Per exemple, podríes configurar WP Super Cache per precachear les teves pàgines.

Si no és possible utilitzar un sistema de caché per pregenerar pàgines HTML estàtiques, com en el cas d’un lloc de membresia on les pàgines són interactives i úniques per a cada usuari, podríes considerar activar el compilador PHP 8 JIT, que pot compilar dinàmicament el codi PHP per a una execució més ràpida.

Recorda que en WordPress la teva base de dades és, en ocasions, el principal coll d’ampolla

En aquests casos, la gran majoria del temps d’espera no prové del temps d’execució de PHP, sinó del temps de procés de MySQL, que no millorarà amb l’ajuda del compilador JIT. Si aquest és el teu cas, la teva alternativa per millorar el rendiment de velocitat és una caché d’objectes per a les teves dades.

Llegeix més en aquesta publicació: Redis Object Cache per a WordPress.

És compatible WordPress amb PHP 8?

PHP 8 introdueix canvis significatius que no són compatibles amb versions anteriors i elimina moltes funcions marcades com obsoletes en versions anteriors de PHP 7.x.

El canvi més significatiu en PHP 8 és la introducció de la tipificació estricta. Moltes funcions integrades són més exigents amb l’entrada que accepten, i PHP 8 en si és més rigorós amb la forma en què es passen les entrades a les funcions. Els problemes que anteriorment resultaven en avisos ara resulten en advertències, i els problemes que anteriorment resultaven en advertències ara resulten en errors.

Un altre problema de compatibilitat digne de menció són les advertències convertides en excepcions d’error. Hi ha un gran nombre d’advertències de PHP que s’han convertit en excepcions d’error en PHP 8.

L’equip central de WordPress ha treballat des del llançament 5.6 en totes aquestes degradacions de codi. Però, considerant que WordPress mai s’usa aïllat (sempre instal·lem temes i complements de tercers), poder executar la nostra instal·lació base de WordPress en PHP 8 no indica una compatibilitat “completa”.

És compatible la meva configuració de WordPress amb PHP 8?

Espera. És impossible conèixer l’estat del suport de PHP 8 dins de l’ecosistema més ampli (complements, temes, etc.). Per aquesta raó, la nostra recomanació és verificar la teva configuració en un entorn de prova.

Eines de compatibilitat de WordPress per a desenvolupadors

L’ecosistema de PHP produeix diverses eines que poden ajudar-te durant les actualitzacions de PHP, incloent-hi:

  • PHPCompatibility: és un connector per a PHP CodeSniffer (una eina de desenvolupament essencial que garanteix que el teu codi segueixi net i consistent). Aquest connector proporciona regles que assenyalen problemes de compatibilitat i suggereixen com refacturar el teu codi.
  • Rector: és una eina que pot realitzar algunes refactoritzacions de codi per a tu. Ajuda amb les actualitzacions de PHP, les actualitzacions de frameworks i millora la qualitat del teu codi.
  • També, com a desenvolupador, encara que no sigui una eina, considera tenir a mà les Guies de migració de PHP.

Comprovador de compatibilitat WordPress PHP 8

Si vols fer una prova de compatibilitat d’un lloc WordPress, amb tots els seus connectors i temes, en aquest cas, el millor verificador de compatibilitat PHP 8 que pots trobar és un entorn de prova que s’executi amb una còpia exacta del teu lloc WordPress de producció. En altres paraules, prova el teu lloc en un entorn de preparació.

Si no tens PHP 8 amb el teu proveïdor actual o el teu allotjament no té un entorn de preparació, registra’t en 10 segons!, t’oferim servidors de desenvolupament GRATUÏTS.

A Wetopi, amb el teu pla gratuït o de pagament, pots canviar el teu motor PHP de PHP 5.6 a PHP 8.2 i viceversa.

Provant el meu lloc WordPress en un servidor de staging

Vols comprovar PHP8 amb el teu lloc WordPress?
I no vols lluitar amb els detalls?

Migrem el teu lloc WordPress – GRATIS –
  1. Inicia sessió a Wetopi i ves a la pàgina del teu lloc.
  2. Obre les “Opcions del menú” del teu servidor de producció i fes clic a l’opció Clonar:

    opció de menú clonar a wetopi
  3. Al teu nou servidor de preparació: obre les opcions del menú i la secció de “Opcions avançades”. Allà pots canviar a PHP 8 amb un sol clic:

    actualitza WordPress de PHP 7.4 a PHP 8

La nostra recomanació:

Quan vam escriure aquest article, PHP 8.2 és la versió més recent de PHP. Aquesta última versió de PHP 8 ve amb diverses millores de rendiment i millores de seguretat. Actualitzar el motor PHP d’un CMS de WordPress de la versió 7.4 a 8.2 pot portar beneficis significatius, però també requereix proves.

També cal tenir en compte que PHP 7.4 ha arribat al seu final de vida (des de novembre de 2022) i ja no rebrà actualitzacions de seguretat.

En resum, actualitzar a PHP 8.2 pot millorar el rendiment i la seguretat del teu lloc web. Tanmateix, és essencial realitzar proves en el teu servidor de prova (“Staging server”) per garantir que tots els plugins i temes siguin compatibles amb la nova versió de PHP i evitar problemes.

Dit això, la nostra recomanació és:

Comença per provar la compatibilitat del teu tema i plugins de WordPress en un entorn de prova o “sandbox” —

Reemplaça els plugins antics i no compatibles
i
Actualitza el teu lloc web en producció tan bon punt no hi hagi problemes.

Resumidament, som uns techies apassionats per WordPress que hem creat Wetopi, un Hosting WordPress Gestionat, per minimitzar la fricció a la que tot professional s’enfronta en treballar i allotjar projectes WordPress.

Inclou servidors de desenvolupament Gratis.
No cal tarjeta de crèdit.

Compara Wetopi amb el teu hosting actual

Dóna’t d’alta, demana una migració i compara.

Sense cap compromís ni esforç per part teva, migrem una còpia del teu web.

Sense lletra petita.
Sense compromisos.
Sense targeta de crèdit.