Tras las peticiones de muchos clientes, para aquellos que quieran estar a la última y que estén desarrollando proyectos con código nuevo, ya está disponible en todos nuestros planes Plesk.

Todos los clientes que tengáis estos planes, ya tenéis la posibilidad de cambiar a PHP 8, esta versión de PHP no es indicada para la gran mayoría de clientes, cambiar tu web a PHP 8 puede suponer que tu web deje de funcionar si el código de la web no está adaptado para PHP 8. Con lo cual si no está haciendo una web nueva no debes usar esta versión.

¿Cuáles son las novedades de PHP 8?

PHP es uno de los lenguajes de programación más sencillos de aprender, y también uno de los más utilizados a lo largo y ancho de la web. A pesar de que recientemente han aparecido alternativas muy interesantes como Node.js, PHP sigue siendo la base de la inmensa mayoría de páginas web que podemos ver a día de hoy.

Una de las grandes ventajas de este lenguaje es que con un tutorial de PHP y la motivación adecuada, puedes escribir tus primeros scripts y ejecutar comandos en tan solo unas pocas horas. PHP 7 introdujo una gran optimización de su velocidad, lo que llevó a una mejora en el ranking de los lenguajes de programación más populares. Ahora, PHP 8 ha mejorado aún más en este aspecto y ha introducido otras características nuevas que buscan devolverle a este lenguaje de programación el lugar que se merece.

El 26 de noviembre de 2020, PHP 8.0.0 - la última edición de este popular lenguaje de scripts - fue lanzado al mercado. Esto encaja con el ciclo normal de tres años de desarrollo para PHP: su predecesor, PHP, 7.4 estuvo vigente cerca de un año después de que el soporte para PHP 7.1 fuera descontinuado. El soporte para PHP 7.2 también terminará a finales de 2020.

Muchos sitios web desarrollados en PHP todavía se basan en las versiones más antiguas de este lenguaje. Aunque a día de hoy todavía es posible utilizar una versión anterior, se trata de una práctica no muy recomendada. Mantener el código de tu sitio web actualizado y cambiar a nuevas versiones de PHP tiene varias ventajas: estas ofrecen más variedad, el rendimiento puede incrementarse de forma significativa, y generalmente se cierran brechas de seguridad importantes.

Por qué cambiar a PHP 8: diferencias con las versiones anteriores

El paso a PHP 8 supone un cambio de versión importante, por lo que uno debería esperar que las versiones más antiguas ya no sean funcionales. Sin embargo, la mayoría de los cambios que provocaban problemas serios con este lenguaje ya fueron solucionados en las actualizaciones 7.2, 7.3 y 7.4.

Por suerte, si siempre has mantenido tu código actualizado no tendrás ningún problema para migrar a PHP 8, incluso si la nueva actualización es un lanzamiento importante que no incluye retrocompatibilidad con versiones anteriores. A continuación veremos una lista de los cambios más importantes que incluye esta nueva actualización de PHP, aunque si quieres ver todas las diferencias te recomendamos que visites el sitio oficial del proyecto.

Cuáles son las características de PHP 8

La nueva versión de PHP tiene algunas características nuevas que proporcionan a los desarrolladores web muchas posibilidades adicionales. Aquí hemos resumido los cambios más interesantes en comparación con las últimas versiones de este lenguaje.

Compilador JIT

Entre las principales novedades de PHP 8 nos encontramos el compilador JIT, que mejora significativamente el rendimiento de las páginas construidas en este idioma. PHP no se compila, sino que se trata de un lenguaje interpretado línea por línea. El compilador JIT (Just in Time) soluciona esto compilando partes del código durante el tiempo de ejecución; y al hacerlo actúa de manera muy parecida a una versión en caché del código.

Esta nueva característica de PHP 8 ayudará a los desarrolladores a construir aplicaciones web más rápidas y con una performance muy superior. Precisamente el rendimiento de PHP era una de las características en las que más salía perdiendo en comparación con otros lenguajes como Node.js o Go, por lo que se trata de una muy buena noticia para los amantes de esta herramienta.

Tipos de unión

Si has trabajado antes con otros lenguajes como C/C++, TypeScript o Haskell, ya estarás familiarizado con los tipos de unión. En estos lenguajes fuertemente tipados se puede declarar una variable como perteneciente a dos tipos diferentes, de tal manera que se pueda usar con valores pertenecientes a cualquiera de ellos. En la nueva versión de PHP 8 nos encontramos con esta característica, que sirve para hacer el código más robusto.

Tipo de retorno static

En el nuevo PHP 8, static es un tipo especial de nombre de clase que se añade a self & parent como un nuevo tipo válido de retorno.

WeakMap

Los WeakRefs ya fueron añadidos en la versión anterior de este lenguaje, PHP 7.4. Con PHP 8, sin embargo, se han incluido WeakMaps, que no son otra cosa que la extensión lógica de estas funciones. Los WeakMaps y WeakRefs pueden ser usados para eliminar objetos cuando solo la caché hace referencia a las clases de entidades de los objetos.

Esto lleva a un manejo de los objetos que ahorra recursos, y permite mejorar aún más la estabilidad y la velocidad de las aplicaciones construidas con este lenguaje. De nuevo, PHP 8 se está poniendo las pilas para intentar competir con otros idiomas server – side como Node.js y Go.

Uso de ::clase para objetos

En versiones anteriores de este lenguaje de programación, era necesario usar get_class() para asignar una clase a los objetos. Ahora, gracias a los cambios introducidos en PHP 8, es posible aplicar ::class a los objetos. Esto permite mantener el código más limpio y realizar la misma función con menos líneas.

Interfaces “Stringable”

A partir de PHP 8.0, la interfaz Stringable se añade automáticamente a las clases que implementan el método __toString(). Anteriormente, este paso tenía que hacerse manualmente. De nuevo la intención es hacer el código más limpio y mejorar el rendimiento de las aplicaciones construidas con este lenguaje.

Función fdiv

En la nueva versión PHP 8, es posible hacer una división entre 0 utilizando la nueva función fdiv(). El resultado de utilizar este método es un valor INF, -INF o NAN, dependiendo del caso concreto.

Anotaciones de tipo

En PHP 8, se añaden anotaciones de tipo correcto para todas las funciones y métodos internos. Esta funcionalidad es algo que los usuarios llevaban tiempo reclamando y que puede servir para darle una mayor robustez al código.

Errores de tipo

En las versiones anteriores de este lenguaje de programación, solo las funciones definidas por el usuario podían hacer saltar un error tipo TypeError. Las funciones internas del lenguaje emitían errores tipo warning o null. Sin embargo, en PHP 8 la mayoría de las funciones internas ahora también devuelven un error de tipo.

Nueva clasificación para las advertencias de los motores

En las versiones anteriores a PHP 8, existían muchos errores que solo emitían una advertencia o una nota genérica. Para mejorar la experiencia de los desarrolladores, ahora cada error vendrá asociado con un mensaje diferente, de tal manera que sea mucho más sencillo realizar el proceso de debugging.

La lista completa de los nuevos mensajes de error de PHP 8.0 se puede encontrar en la documentación oficial.

@ ya no suprimirá los errores

Esta nueva característica está destinada también a hacer más fácil el proceso de detección de errores. A partir de PHP 8.0, en lugar de suprimir los errores con el operador @, como ocurría anteriormente, ahora es necesario que te asegures de haber establecido display_errors=Off en el servidor.

Firma correcta de los métodos mágicos

En versiones anteriores de PHP, era posible escribir métodos mágicos con firmas que no coincidían con la esperada, como por ejemplo __clone(): float o __isset(): Closure. Desde la aparición de PHP 7.0, el uso correcto de los métodos mágicos solo se comprobaba de forma aleatoria.

Por evitar errores, en la nueva versión de PHP se han añadido varias comprobaciones de parámetros y valores de retorno que te permiten asegurarte de que las firmas son correctas.

¿Qué supone todo esto para PHP?

Si estás metido dentro del mundo de la programación y el desarrollo web, es muy probable que tengas la impresión de que PHP es una tecnología del pasado. Son muchos los desarrolladores que están optando por utilizar otros lenguajes como Node.js o Go para crear los servidores de sus aplicaciones, debido a ciertas ventajas que presentan estas tecnologías rivales.

Con la nueva versión PHP 8.0, los creadores de este lenguaje pretenden otorgarle una serie de ventajas que le permitan mantenerse a la altura de las tecnologías rivales. Por este motivo la mayoría de las mejoras y cambios van destinadas a proporcionarle a las aplicaciones construidas con PHP una mayor robustez, más estabilidad en el código y un rendimiento mejorado.

¿Serán suficientes estos cambios para mantener a PHP como el rey del desarrollo de aplicaciones web? Solo el tiempo lo dirá; pero con frameworks tan populares como Laravel o Codeigniter, y teniendo en cuenta que PHP es la base de más del 70% de las páginas web en funcionamiento hoy en día, parece claro que esta tecnología todavía tiene mucho que decir.

Conclusión: cambios introducidos en PHP 8.0

En este artículo hemos comentado algunos de los cambios más importantes introducidos en la nueva versión de PHP, que estamos seguros de que va a ayudar a mantener la popularidad de esta tecnología y mejorar la experiencia de los desarrolladores de todo el mundo. Por supuesto, hay muchas más novedades, y es de esperar que futuras actualizaciones menores terminen de devolverle a PHP el lugar que se merece.