El 26 de noviembre de 2020 salió al mercado la versión 8 de PHP.
Cada actualización de PHP trae consigo una gran cantidad de características nuevas e importantes. Si bien no todas las actualizaciones son importantes para la mayoría de usuarios (Algunas incluso son demasiado específicas para los desarrolladores experimentados de WordPress) la llevada a cabo por PHP 8 si lo fue.
No obstante, independientemente de tu nivel como desarrollador deberás conocer los aspectos más importantes de cada nueva versión de PHP.
Por este motivo, hemos desarrollado esta guía con los cambios más importantes que trae consigo la versión 8 de PHP.
¿Por qué se realizan actualizaciones de PHP?
Como motor web PHP ha de evolucionar constantemente. Por este motivo, siempre se están modificando o agregando nuevos bits con los que mejorar la optimización del código para así hacer de PHP un lenguaje de programación más fácil y sencillo.
Por este motivo, los creadores de plugins y temas de WordPress han de estar al tanto de los cambios ocasionados en cada versión de PHP cuando esta sale al mercado.
No obstante, has de saber que cada nueva versión de PHP está destinada a generar cambios positivos en el entorno del desarrollo web. Sin embargo, en ciertas ocasiones estos cambios han provocado daños en algunas páginas web debido a atributos incompatibles, atrasados o desactualizados que acaban chocando con las nuevas actualizaciones de PHP.
Estas incompatibilidades están ahí y pueden llegar a provocar que toda tu página web deje de funcionar.
Nota: Para evitar que tu página web quede caída al migrar de versión de PHP te recomendamos realizar una copia de seguridad antes de empezar el proceso.
De todos modos, antes de cambiar de versión de PHP (Y más si nos referimos a esta gran actualización de PHP 8) será importante conocer qué posibles cambios podrían afectar a tu código personalizado.
Novedades de la versión 8 de PHP
Esta octava versión de PHP no es la mayor actualización que se ha producido.
De alguna forma, es un alivio que PHP 8 sea una actualización relativamente pequeña ya que de esta forma existirán menos posibilidades de que tu página web se rompa al actualizar.
Por todo ello, y con el fin de que conozca esta octava versión de PHP te dejamos con las novedades más importantes que ha aportado y que sin duda mejorarán el rendimiento y forma de trabajo de tus páginas web.
Compilador Just In Time (JIT)
El extra más emocionante y más importante de esta nueva versión de PHP es el compilador Just In Time, o JIT.
Como sabrás, PHP es un lenguaje que se interpreta. Esto significa que PHP se ejecuta en tiempo real en vez de ejecutarse en un tiempo de inicio predeterminado después de compilarse.
Lo que JIT trae a la mesa para PHP es una forma de código compilado con el que obtendrás una mejora del rendimiento en determinadas escenarios.
Si como muchos desarrolladores de PHP trabajas con aplicaciones web por desgracia esta mejora no te ayudará mucho. Sin embargo, si te dedicas a otras áreas como las siguientes la mejora JIT supondrá una gran ventaja:
- Análisis de los datos.
- Representación 3D.
- AI.
- Procesos adicionales que tardan mucho en ejecutarse.
Como verás, estas aplicaciones no son precisamente las más famosas de PHP actualmente. Sin embargo, esta actualización está dedicada a los desarrolladores con visión de futuro que se están diversificando más con PHP.
De hecho, está casi garantizado que JIT abrirá nuevos horizontes de PHP y traerá consigo nuevos desarrolladores que estén interesados en usarlo para nuevos propósitos.
Nota: Antes de implementar JIT asegúrate de haberlo probado en un entorno aislado para ver si realmente produce alguna mejora del rendimiento web.
Atributos
PHP 8 ahora admitirá atributos.
Estos son pequeños fragmentos de metadatos que podrás agregar a tu código como parámetros, clases y funciones.
Esto significará que ya no será necesario que utilizar docblocks como solución alternativa estándar. Aunque este cambio parezca menor, en realidad te hará la vida mucho más fácil si eres desarrollador PHP.
Ahora podrás agregar el número de atributos que quieras a cualquier parte del código para luego importarlos con declaraciones de uso.
Incluso podrás agregar parámetros a los atributos.
Para agregar un atributo a su código simplemente tendrás que añadir los signos «menor que» y los signos «mayor que» alrededor del atributo.
Nota: Es importante tener en cuenta que estos atributos no son compatibles con las versiones anteriores de PHP y podrían causar errores si se transfieren a una versión de PHP anterior .
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.
Este nuevo proceso será más corto y estricto mejorando así la detección de errores. También podrás combinar condiciones y no necesitarás para ello ninguna declaración de interrupción.
De esta forma, las nuevas expresiones de coincidencia suponen una mejora notable en cuanto a rendimiento.
Tipos de unión
Una de las partes clave de PHP son los tipos de unión, es decir, asignar una variable como booleano, entero, nulo, etc.
Antes de esta versión de PHP solo te permitía asignar variables con tipos únicos. Sin embargo, con PHP 8 podrás asignar dos o más tipos de unión.
Por ejemplo, podrás asignar un tipo de unión float e intergret a la vez. Para ello, tendrás que especificarlo mediante una línea (Ejemplo: float|int.)
Por supuesto, no podrás combinar void con ningún otro tipo de unión ya que son mutuamente excluyentes. Además, los tipos redundantes o duplicados como float | float tampoco funcionarán.
En versiones anteriores de PHP recordarás que podías utilizar anotaciones PHPDoc para intentar crear un tipo de unión funcional. Ahora, podrás saltarte esta solución y simplemente asignar sus variables con varios tipos.
Retorno estático y tipos mixtos
Como desarrollador sabrás que los retornos de PHP se utilizan para devolver el valor de una función. Antes de esta versión no era posible la 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 versión 8 de PHP.
También encontrarás 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. Este será mejor utilizarlo cuando se trate de situaciones que requieran el trabajo con varios tipos diferentes.
Además, se considerará un retorno mixto de forma predeterminada si no elige un tipo específico.
Nuevas funciones de PHP 8
La nueva versión de PHP 8 también traerá consigo nuevas funciones con las que podrás trabajar como:
- str_starts_with y str_ends_with: Para comprobar si una cadena termina o comienza con una línea específica.
- fdiv: Permitirá una división que reaccionará consistentemente al dividir entre cero.
- str_contains: Esta función será similar a str_starts_with y str_ends_with pero verificará una cadena completa.
- get_debug_type: Esta función actuará de forma similar a gettype pero devolverá información adicional, como el nombre de la clase.
- get_resource_id: Esta función facilitará la obtención de una ID para un recurso como una conexión de base de datos.
- preg_last_error_msg: Devolverá un mensaje de error que se podrá leer de forma sencilla.
Argumentos nombrados
Algunos pueden amarlo y otro pueden odiarlo. De todas formas, los argumentos con nombre estarán en la nueva versión de PHP.
Los argumentos te permitirán pasar datos a una función.
Los argumentos con nombre te permitirán hacer lo mismo pasando el nombre del argumento en lugar del orden.
Aún así, podrás combinar los argumentos con nombre con argumentos ordenados. Pero podrás omitir los parámetros opcionales si lo deseas.
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. Más fácil trabajar con él.
Nota: Existe la posibilidad de que este cambio pueda causar algún problema al cambiar los nombres de los argumentos y la compatibilidad con versiones anteriores.
Cambios importantes en PHP 8
La nueva versión octava de PHP como acabas de comprobar traerá consigo cambios importantes. Esto podrá causar errores si actualizas o vuelves a la versión anterior de PHP.
Por lo tanto, antes de actualizar echa un vistazo a esta lista de cambios importantes y comprueba cuales te podrán afectar:
- Las advertencias se reclasificaron para que muestren el nivel de gravedad adecuado, como avisos, advertencias y errores fatales. Considera 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 afectará a la compatibilidad con versiones anteriores.
- Se realizaron varios cambios en los informes de errores que anteriormente se omitían. En otras palabras, aparecerán nuevos errores que quizás no hayas visto antes.
- La codificación es más segura y estable. Aunque PHP 7 realizó algunos cambios importantes en la codificación la actualización más reciente provocará menos daño al código existente.
- Los nombres con espacios de nombres ahora son un solo token, es decir no podrá haber ningún espacio en blanco dentro. El impacto de este cambio será grande pero sencillo de solucionar.
- En versiones anteriores de PHP, los métodos que tenían un nombre que coincidía con la clase se interpretaba como constructores. En la nueva versión, tendrás que usar el método __construct ().
De todos modos, en cada nueva actualización aparecerán docenas de actualizaciones pequeñas que rara vez causarán problemas en tus aplicaciones.
Actualización de su versión de PHP en WordPress
Si eres desarrollador de WordPress ya sabrás lo importante que es mantener actualizada tu versión de PHP. De hecho, es alarmante la cantidad de usuarios de WordPress que todavía ejecutan sus páginas web en PHP 5.6.
Ten en cuenta que incluso ejecutas la versión PHP 7.4 y pensabas que estaba completamente actualizado con la llegada de PHP 8 estarás obsoleto y esto será un problema.
Ten en cuenta que ejecutar una página web WordPress en una versión anterior de PHP supondrá un riesgo de seguridad importante para tu página web ya que las versiones obsoletas de PHP contienen flujos de seguridad explotables que los piratas informáticos podrán aprovechar.
Por este motivo, la única forma de reparar dichas vulnerabilidades será manteniendo PHP completamente actualizado en todo momento.
Otra razón para actualizar tu PHP a PHP 8 será la velocidad y rendimiento de tu página web.
Con cada actualización de PHP se consiguen velocidades más rápidas y funciones más optimizadas. Por supuesto, la mayor diferencia fue el paso de PHP 5.6 a PHP 7.4. Sin embargo, con cada actualización notarás un aumento en la velocidad con la actualización más reciente.
Por último, la compatibilidad es la razón final para mantener actualizado el PHP en WordPress.
Una versión desactualizada de PHP podrá causar muchos problemas que podrán romper tu página web. Además, existirán a partir de una nueva versión de PHP temas y plugins que requerirán la última versión de PHP disponible.
Nota: Antes de ejecutar la actualización de PHP consulta con tu hosting para asegurarte de que sea compatible tu servidor con la actualización más reciente de PHP. Es posible que algunos servidores se estén ejecutando un software más antiguo.
Conclusión: PHP 8 y el futuro de PHP
Si bien PHP 8 no es la actualización monstruosa que fue PHP 7.0 o PHP 7.4 todavía PHP 8 tiene muchas cosas que ofrecer como el compilador JIT hasta los nuevos atributos, pasando por la expresión de coincidencias y otras funciones útiles para los desarrolladores.
Por todo ello, es hora de que te familiarices con esta nueva versión de PHP.