PHP 8: la guía completa
Publicado: 2021-01-05El 26 de noviembre de 2020, entramos en el nuevo mundo de PHP 8. Cada actualización de PHP trae una gran cantidad de características nuevas e importantes. Si bien no todas las actualizaciones son importantes para la mayoría de los usuarios ocasionales, incluso otras actualizaciones son demasiado específicas para la mayoría de los desarrolladores experimentados de WordPress.
Pero no importa en qué nivel de desarrollo esté operando, los aspectos de la nueva versión, como un aumento en la velocidad y cambios importantes que podrían dañar el código existente, podrían afectar negativamente su flujo de trabajo diario.
En esta guía, veremos los cambios más importantes en esta nueva versión de PHP 8. Vamos a sumergirnos.
Por qué ocurren las actualizaciones de PHP
Como motor, PHP cambia constantemente. Siempre se están modificando o agregando nuevos bits para ayudar a optimizar el código y hacer que PHP sea más fácil y sencillo de trabajar.
Los creadores de complementos y temas de WordPress, junto con los desarrolladores de sitios web, deben estar al tanto de los cambios de PHP cuando suceden. Al hacerlo, estará un paso por delante del juego y evitará pasar páginas de documentación después de que se hayan realizado algunas actualizaciones más.
Cada nueva versión de PHP está destinada a generar cambios positivos en el entorno de desarrollo. Desafortunadamente, hay ocasiones en las que ciertos ajustes pueden dañar su código existente.
Cuando los atributos incompatibles, atrasados o desactualizados chocan con las nuevas actualizaciones de PHP, puede terminar rompiendo todo su sitio o haciendo que algunas áreas del sitio dejen de funcionar.
Es una buena idea saber qué posibles cambios importantes se publican para poder abordarlos directamente en el código personalizado. Esto también le ayuda a hacer uso de código más nuevo que tiene expresiones más optimizadas.
Sin embargo, incluso si no ha tocado ni una sola pieza de código personalizado en su carrera, cuando su panel de WordPress agregue un aviso de Actualización de PHP de WordPress requerida para la versión actualizada de PHP, tendrá que decidir si va a actualizar. o no.
Invariablemente, la respuesta a esa pregunta es casi siempre sí. Pero antes de hacerlo, es inteligente revisar los principales cambios de funciones y asegurarse de que no haya nada que pueda causarle problemas. Como dice el viejo refrán, "Es mejor prevenir que lamentar".

Novedades de la versión PHP 8
Esta versión de PHP no es, de ninguna manera, la mayor actualización que se ha producido. Pero todavía hay algunos cambios interesantes que deberíamos considerar.
De alguna manera, es un alivio que PHP 8 sea una actualización relativamente pequeña. Esto significa que hay menos cambios importantes que podrían causar problemas en su código existente.
En otras palabras, la versión actual de PHP le brinda algunas características nuevas excelentes sin la necesidad de pasar horas solucionando problemas.
Si bien se realizaron algunos cambios adicionales en esta versión de PHP, esta guía cubrirá los más relevantes.
Compilador Just In Time (JIT)
La adición más emocionante, y ciertamente más importante, a la nueva versión de PHP es el compilador Just In Time, o JIT.
Como probablemente sepa, PHP es un lenguaje que se interpreta. Esto significa que se ejecuta en tiempo real en lugar de ejecutarse en un tiempo de inicio predeterminado después de compilarse.
Lo que JIT trae a la mesa para PHP es código compilado. Con el código compilado se obtiene un rendimiento mejorado en determinadas situaciones.
Si eres como muchos desarrolladores de PHP, probablemente estés trabajando con aplicaciones web. Desafortunadamente, JIT no ayudará mucho con las aplicaciones web. Pero marca una gran mejora cuando se trata de tareas como:
- Análisis de los datos
- Representación 3D
- AI
- Procesos adicionales que tardan mucho en ejecutarse
Aunque estas no son necesariamente las aplicaciones PHP actuales más comunes, los desarrolladores con visión de futuro definitivamente se están diversificando más con PHP.
El compilador JIT ayuda a que PHP sea más flexible para hacerlo.
De hecho, está casi garantizado que JIT abrirá los horizontes de PHP y traerá nuevos desarrolladores que estén interesados en usarlo para nuevos propósitos.
Para los proyectos existentes, probablemente no sirva de mucho.
Antes de implementar JIT, asegúrese de haberlo probado en un entorno aislado para ver si hay alguna mejora en su rendimiento.
Atributos
La nueva versión de PHP admite atributos. Estos son pequeños fragmentos de metadatos que agrega a su código, como parámetros, clases y funciones.
Esto significa que ya no es necesario que use docblocks como solución alternativa estándar. Aunque esto suena como un cambio menor, en realidad hace la vida mucho más fácil para los desarrolladores de PHP.
Ahora puede agregar cualquier número de atributos a cualquier parte del código individual y luego importarlos con declaraciones de uso.
Incluso puede agregar parámetros a los atributos.
Para agregar un atributo a su código, simplemente agregue dos signos "menor que" y dos signos "mayor que" alrededor del atributo.
Es importante tener en cuenta que los atributos no son compatibles con versiones anteriores. Causarán errores si se transfieren a una versión anterior de PHP.
Como probablemente sepa, la solución alternativa estándar con docblock es completamente funcional. Pero también siempre ha sido bastante torpe. Con la nueva versión de PHP, ahora puede agregar atributos directamente.
Aunque es una pequeña adición a PHP, sus implicaciones son enormes.
Nueva expresión de coincidencia
Las declaraciones Switch eran una versión más robusta de las declaraciones if. Sin embargo, las nuevas expresiones de coincidencia en PHP mejoran aún más ese concepto.
Esto es más corto y estricto, lo que ayuda a detectar mejor los errores. También combina condiciones y no requerirá ninguna declaración de interrupción.
De esta forma, las nuevas expresiones de coincidencia suponen una mejora notable.
Switch todavía tiene la ventaja sobre la coincidencia porque tiene la capacidad de usar múltiples expresiones. Pero además de eso, considere leer un poco sobre las expresiones de coincidencia.
Hasta ahora parecen un reemplazo superior que quizás desee utilizar.
Tipos de unión
Una de las partes clave de PHP son los tipos: asignar una variable como booleano, entero, nulo, etc.
Antes de esta versión de PHP, solo se le permitía asignar variables con tipos únicos. PHP 8 le permite asignar dos tipos o más, también llamado tipo de unión.
Como ejemplo, podrá asignar un tipo de número entero y flotante y puede utilizar cualquiera de ellos. Se especifican con una línea entre los tipos, como float | int.
Por supuesto, no podrá combinar void con ningún otro tipo porque son mutuamente excluyentes.
Los tipos redundantes o duplicados, como float | float, tampoco funcionarán.
En versiones anteriores de PHP, podría usar anotaciones PHPDoc para intentar crear un tipo de unión funcional. Ahora, puede omitir ese tipo de solución y simplemente asignar sus variables con varios tipos.
Retorno estático y tipos mixtos
Como desarrollador, es de conocimiento común que los retornos de PHP se utilizan para devolver el valor de una función. Antes de esta versión, no era una opción utilizar el tipo estático.
"Parent" y "self" eran tipos de devoluciones que eran válidos, pero "static" no lo era. Este problema se solucionó por completo en la nueva versión de PHP.

Aunque no es un caso de uso increíblemente común, si surge, definitivamente se alegrará de tener acceso a él.
También encontrará un nuevo tipo mixto. Podría describirse con mayor precisión como un pseudo-tipo porque representa todos los demás tipos que existen en PHP.
Es mejor utilizarlo cuando se trata de situaciones que requieren que trabaje con varios tipos diferentes.
Mixto será el predeterminado si no elige un tipo específico.
A menudo, es mejor utilizar el nuevo tipo de unión en lugar de mixto. Esto se debe a que es probable que desee ser más específico.
Sin embargo, este seguirá siendo útil para ti.
La realidad es que ninguno de estos es tan grande como el tipo sindicato, pero definitivamente marcan una mejora.
Nuevas funciones de PHP 8
La nueva versión de PHP llega con nuevas funciones con las que puede trabajar.
- str_starts_with y str_ends_with : esto comprobará si una cadena termina o comienza con una línea específica
- fdiv : esto permitirá una división que reaccionará consistentemente al dividir por cero
- str_contains - similar a str_starts_with y str_ends_with pero verificará una cadena completa
- get_debug_type : actúa de manera similar a gettype , pero devolverá información adicional, como el nombre de la clase
- get_resource_id : esto facilita la obtención de una ID para un recurso, como una conexión de base de datos
- preg_last_error_msg : devuelve un mensaje de error que se puede leer en lenguaje sencillo
Pruebe algunas de estas nuevas funciones para ver cómo puede aprovecharlas al máximo.
Argumentos nombrados
Algunos pueden amarlo y algunos pueden despreciarlo. De cualquier manera, los argumentos con nombre están en la nueva versión de PHP.
Los argumentos le permiten pasar datos a una función. Los argumentos con nombre le permiten hacer lo mismo pasando el nombre del argumento en lugar del orden.
Aún podrá combinarlos con argumentos ordenados. Pero podrá omitir los parámetros opcionales si lo desea.
En términos prácticos, esto significará un código más limpio y pocos errores. Después de todo, cuanto más ajustado sea el código, mejor. Es mucho más fácil trabajar con él.
Existe la posibilidad de que esto pueda causar un problema al cambiar los nombres de los argumentos y la compatibilidad con versiones anteriores, lo que podría causar interrupciones en versiones anteriores de PHP. Pero para muchos desarrolladores y programadores, estos argumentos con nombre son un cambio bienvenido.
Cambios importantes en PHP 8
La nueva versión de PHP viene con algunos cambios importantes. Esto puede causar errores si actualiza o vuelve a la versión anterior de PHP. Eche un vistazo a esta lista de cambios importantes y vea cuáles le afectarán.
- Las advertencias del motor se reclasificaron para que muestren el nivel de gravedad adecuado, como avisos, advertencias y errores fatales. Considere esto como un pequeño cambio importante que no afectará a muchos proyectos.
- TypeError ahora se mostrará de forma rutinaria en las funciones internas. Esto afecta la compatibilidad con versiones anteriores más de lo que nos damos cuenta, pero de todos modos es un cambio sólido.
- Se realizaron varios cambios en los niveles de informe de errores que anteriormente se silenciaron e ignoraron. En otras palabras, los nuevos errores que quizás no haya visto antes ahora deberían propagarse.
- La clasificación es más confiable y estable. Aunque PHP 7 realizó algunos cambios importantes en la clasificación, la actualización más reciente hace mucho menos daño al código existente.
- Los nombres con espacios de nombres ahora son un solo token. No pueden tener ningún espacio en blanco dentro. El impacto de este cambio es pequeño y sencillo de solucionar.
- En versiones anteriores de PHP, los métodos que tenían un nombre que coincidía con la clase se interpretaban como constructores. En la nueva versión, tendrás que usar el método __construct ().
Hay docenas de otras actualizaciones pequeñas que rara vez causarán problemas. En términos generales, no tendrá muchos problemas con la actualización actual de PHP.
Actualización de su versión de PHP en WordPress
Como desarrollador de WordPress, sabe lo importante que es mantener actualizada su versión de PHP. Es alarmante saber que una parte muy importante de los usuarios de WordPress todavía se ejecuta en PHP 5.6, lo cual es una gran responsabilidad.
Incluso si ha estado ejecutando PHP 7.4 y pensó que estaba completamente actualizado, ahora es definitivamente el momento de actualizar a la versión más reciente de PHP.
Ejecutar su sitio de WordPress en una versión anterior de PHP es un riesgo de seguridad importante. Las versiones obsoletas de PHP tienen flujos de seguridad explotables que los piratas informáticos aprovechan regularmente.
La única forma de reparar los baches existentes es manteniendo PHP completamente actualizado en todo momento.
También querrá ejecutar un poderoso complemento de seguridad de WordPress para reforzar su protección de seguridad.
Otra razón para actualizar su PHP es la velocidad. Con cada actualización, se obtienen velocidades más rápidas y funciones más optimizadas. Por supuesto, la mayor diferencia notable fue entre PHP 5.6 y 7.4. Pero definitivamente notará un aumento en la velocidad con la actualización más reciente.
La compatibilidad es la razón final por la que es importante mantener actualizado PHP en WordPress.
Una versión desactualizada de PHP puede causar muchos problemas diferentes que pueden causar fallas o romper por completo un sitio web.
Más allá de eso, hay temas y complementos que requieren una versión PHP completamente actualizada para funcionar.
Antes de ejecutar la actualización, asegúrese de tener un complemento de copia de seguridad de WordPress ejecutándose en caso de que haya algún conflicto después de que se ejecute la actualización.
Actualizar su versión de PHP es bastante simple. Todo lo que necesita hacer es iniciar sesión en su cPanel, o en el panel de administración del host que está utilizando, encontrar el Administrador de versiones de PHP y marcar la última versión. Pero antes de ejecutar la actualización, consulte con su host para asegurarse de que sea compatible con la actualización más reciente de PHP. Es posible que algunos se estén ejecutando en software más antiguo.
Para obtener información adicional sobre PHP y WordPress, consulte la documentación oficial de WordPress.org en WordPress y PHP 8.
Conclusión: PHP 8 y el futuro de PHP
Si bien no es la actualización monstruosa que fueron PHP 7.0 - 7.4, PHP 8 todavía tiene muchas cosas que ofrecer que puede aprovechar.
Desde el compilador JIT hasta los nuevos atributos, la expresión de coincidencias y otras funciones útiles para los desarrolladores, es hora de familiarizarse con esta importante nueva versión de PHP.
¿Qué partes de esta actualización prevé utilizar más en su flujo de trabajo diario?
Kristen ha estado escribiendo tutoriales para ayudar a los usuarios de WordPress desde 2011. Por lo general, puede encontrarla trabajando en nuevos artículos para el blog iThemes o desarrollando recursos para #WPprosper. Fuera del trabajo, a Kristen le gusta llevar un diario (¡ha escrito dos libros!), Hacer caminatas y acampar, cocinar y las aventuras diarias con su familia, con la esperanza de vivir una vida más presente.
