Compatibilidad De WordPress Con PHP 8

Testando PHP 8 con WordPress

Última actualización:

El 26 de noviembre de 2020, se lanzó al mundo PHP 8. Dos años después, la última versión de PHP 8.2 ofrece nuevas características y mejoras prometiendo mejorar la seguridad y el rendimiento de nuestros sitios WordPress. WordPress Core es compatible con PHP 8 desde su lanzamiento con la versión 5.6. Pero, ¿ debo actualizar de inmediato?

Analicemos los principales cambios y cómo obtener el mejor comprobador de compatibilidad de WordPress con PHP 8.2.

Tabla de contenidos

¿Qué cambios de rendimiento vienen con PHP 8?

La característica de rendimiento más emocionante que llega a PHP 8 es JIT, abreviatura de «compilation just in time». PHP es un lenguaje interpretado, lo que significa que se traduce a código de máquina a medida que se ejecuta. JIT realiza un seguimiento del código utilizado con frecuencia e intenta optimizar la traducción de código de máquina para reutilizarlo. Como resultado, puede mejorar el rendimiento de funcionalidades específicas.

La propuesta de RFC describe JIT de la siguiente manera:

«PHP JIT se implementa como una parte casi independiente de OPcache. Se puede habilitar / deshabilitar en el tiempo de compilación y ejecución de PHP. Cuando está habilitado, el código nativo de los archivos PHP se almacena en una región adicional de la memoria compartida OPcache, y op_array-> opcodes [] .handler (s) mantienen punteros a los puntos de entrada del código JIT-ed.»

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

Rendimiento de WordPress con PHP 8 JIT

Las pruebas de compilación de PHP8 muestran que JIT haría que las cargas de trabajo intensivas en CPU se ejecuten significativamente más rápido.

El enfoque de compilación JIT en PHP 8 significa un rendimiento significativamente mejor para cálculos numéricos y un rendimiento ligeramente mejor para aplicaciones web PHP típicas.

Entorno de pruebasMejora de rendimiento
Suite de referencia de PHP3 veces más rápido
WordPress3-5% más rápido
Aplicaciones basadas en FrameworksSin diferencia
fuente: Explorando el nuevo compilador JIT de PHP | Zend por Perforce

JIT funciona mejor con procesamiento intensivo de CPU, como cálculos numéricos repetidos o análisis de Big Data. Dado esto, WordPress se beneficiará de la compilación JIT solo en aquellas funciones principales de WordPress que son llamadas constantemente, pero para ser honestos, esto está lejos de ser considerado una tarea intensiva en CPU.

Comparando el rendimiento de WordPress PHP 8 JIT, un caso real

En un entorno de pruebas hemos comparado un sitio de WordPress con PHP8.2 con y sin JIT.

El sitio de prueba fue elegido como un objetivo claro debido a su:

  • Tiempo de generación de página enorme: más de 2 segundos.
  • Tiempo de procesamiento de base de datos bajo: 36 milisegundos.

Esta primera captura de pantalla sin el compilador JIT, muestra un Tiempo de Generación de Página de 2.3245 segundos:

PHP8 con JIT desactivado
Métricas de rendimiento proporcionadas por Query Monitor – Plugin de WordPress | WordPress.org

Después de activar el compilador JIT:

PHP8 with JIT enabled

El «Tiempo de generación de la página» con JIT habilitado muestra 2.1387 segundos. Lo que significa una reducción del 8%

¿Vale la pena activar PHP 8 JIT para WordPress?

Para obtener esta mejora del 8% en el rendimiento, no siempre vale la pena.

El hecho es que siempre debes tener en cuenta que la primera ejecución será más lenta. En esta primera ejecución, se compila el código y se gestiona su caché para llamadas posteriores.

Si el código compilado por PHP 8 JIT no se reutiliza en varias solicitudes,
considera deshabilitar JIT y
usar un sistema de caché que pueda pregenerar tus páginas.

Por ejemplo, podrías configurar WP Super Cache para precachear tus páginas.

Si no es posible utilizar un sistema de caché para pregenerar páginas HTML estáticas, como en el caso de un sitio de membresía en el que las páginas son interactivas y únicas para cada usuario, podrías considerar activar el compilador PHP 8 JIT, que puede compilar dinámicamente el código PHP para una ejecución más rápida.

Recuerda que en WordPress su base de datos es en ocasiones su principal cuello de botella

En estos casos, la gran mayoría del tiempo de espera no proviene del tiempo de ejecución de PHP, sino del tiempo de proceso de MySQL, que no mejorará con la ayuda del compilador JIT. Si este es tu caso, tu alternativa para mejorar el rendimiento de velocidad es una caché de objetos para tus datos.

Lee más en esta publicación: Redis Object Cache para WordPress.

¿Es compatible WordPress con PHP 8?

PHP 8 introduce cambios significativos que no son compatibles con versiones anteriores y elimina muchas funciones marcadas como obsoletas en versiones anteriores de PHP 7.x.

El cambio más significativo en PHP 8 es la introducción de la tipificación estricta. Muchas funciones integradas son más exigentes con la entrada que aceptan, y PHP 8 en sí es más riguroso con la forma en que se pasan las entradas a las funciones. Los problemas que anteriormente resultaban en avisos ahora resultan en advertencias, y los problemas que anteriormente resultaban en advertencias ahora resultan en errores.

Otro problema de compatibilidad digno de mención son las advertencias convertidas en excepciones de error. Hay un gran número de advertencias de PHP que se han convertido en excepciones de error en PHP 8.

El equipo central de WordPress ha trabajado desde el lanzamiento 5.6 en todas estas degradaciones de código. Pero, considerando que WordPress nunca se usa aislado (siempre instalamos temas y complementos de terceros), poder ejecutar nuestra instalación base de WordPress en PHP 8 no indica una compatibilidad «completa».

¿Es compatible mi configuración de WordPress con PHP 8?

Espera. Es imposible conocer el estado del soporte de PHP 8 dentro del ecosistema más amplio (complementos, temas, etc.). Por esa razón, nuestra recomendación es verificar su configuración en un entorno de ensayo.

Herramientas de compatibilidad de WordPress para desarrolladores

El ecosistema de PHP produce varias herramientas que pueden ayudarte durante las actualizaciones de PHP, incluyendo:

  • PHPCompatibility: es un complemento para PHP CodeSniffer (una herramienta de desarrollo esencial que garantiza que su código siga siendo limpio y consistente). Este complemento proporciona reglas que señalarán problemas de compatibilidad y sugerirán cómo refactorizar su código.
  • Rector: es una herramienta que puede realizar algunas refactorizaciones de código por usted. Ayuda con las actualizaciones de PHP, las actualizaciones de frameworks y mejora la calidad de su código.
  • También, como desarrollador, aunque no sea una herramienta, considere tener a mano las Guías de migración de PHP.

Comprobador de compatibilidad WordPress PHP 8

Si deseas realizar una prueba de compatibilidad de un sitio WordPress, con todos sus complementos y temas, en este caso, el mejor verificador de compatibilidad PHP 8 que puedes encontrar es un entorno de prueba que se ejecute con una copia exacta de tu sitio WordPress de producción. En otras palabras, prueba tu sitio en un entorno de preparación.

Si no tienes PHP 8 con tu proveedor actual o tu alojamiento no tiene un entorno de preparación, ¡regístrate en 10 segundos!, te ofrecemos servidores de desarrollo GRATUITOS.

En Wetopi, con tu plan gratuito o de pago, puedes cambiar tu motor PHP de PHP 5.6 a PHP 8.2 y viceversa.

Probando mi sitio WordPress en un servidor de staging

¿Quieres comprobar PHP8 con tu sitio WordPress?
¿Y no quieres lidiar con los detalles?

Migramos tu sitio WordPress – GRATIS –
  1. Inicia sesión en Wetopi y ve a la página de tu sitio.
  2. Abre las «Opciones del menú» de tu servidor de producción y haz clic en la opción Clonar:

    opción de menú clonar en wetopi
  3. En tu nuevo servidor de preparación: abre las opciones del menú y la sección de «Opciones avanzadas». Allí puedes cambiar a PHP 8 con un solo clic:

    actualiza WordPress de PHP 7.4 a PHP 8

Nuestra recomendación:

Cuando escribimos este artículo, PHP 8.2 es la versión más reciente de PHP. Esta última versión de PHP 8 viene con varias mejoras de rendimiento y mejoras de seguridad. Actualizar el motor PHP de un CMS de WordPress de la versión 7.4 a 8.2 puede traer beneficios significativos, pero también requiere pruebas.

También hay que tener en cuenta que PHP 7.4 ha alcanzado su fin de vida (desde noviembre de 2022) y ya no recibirá actualizaciones de seguridad.

En resumen, actualizar a PHP 8.2 puede mejorar el rendimiento y la seguridad de su sitio web. Aún así, es esencial realizar pruebas en tu servidor de prueba («Staging server») para garantizar que todos los plugins y temas sean compatibles con la nueva versión de PHP y evitar problemas.

Dicho esto, nuestra recomendación es:

— Comienza por probar la compatibilidad de tu tema y plugins de WordPress en un entorno de prueba o «sandbox» —

Reemplaza los plugins antiguos y no compatibles
y
Actualiza tu sitio en producción en cuanto no haya problemas.

¿No tienes una cuenta en wetopi?

Incluye servidores desarrollo Gratis.
Sin tarjeta de crédito.

Compara wetopi con tu hosting actual

Date de alta, pide una migración y compara.

Hacemos una copia de tu web gratis y sin esfuerzo por tu parte.

Sin letra pequeña.
Sin compromisos.
Sin tarjeta de crédito.