PHP 8: características y mejoras de esta release

Release PHP 8 (gran actualización de PHP)

La última versión del lenguaje PHP, PHP 8, se lanzó el 26 de noviembre de 2020. Esta última gran actualización incluye muchas características nuevas y optimizaciones importantes, comparado con las versiones anteriores. El desarrollo de la versión 8 de PHP se ha centrado en crear nuevas funcionalidades. Algunas de las características nuevas más importantes son los argumentos con nombre, los atributos, las propiedades del constructor y la compilación JIT.

Argumentos con nombre

Los argumentos con nombre (named arguments, en inglés) son independientes del orden y se documentan automáticamente; además de permitir omitir parámetros opcionales. Permiten nombrar parámetros al llamar a una función; una característica que ya existe en otros lenguajes de programación.

Los argumentos con nombre permiten a los desarrolladores sobreescribir únicamente los valores por defecto que deseen cambiar. De modo que ya no es necesario especificar todos los valores por defecto. Además, los argumentos con nombre se pueden combinar con argumentos normales, posicionales.

Compilación Just-In-Time (JIT)

Como parte de las mejoras a nivel de rendimiento, PHP 8 incluye dos compiladores JIT: Tracing JIT y Function JIT. El rendimiento de una aplicación típica es similar al de la versión anterior de PHP, pero se incrementa el rendimiento en las aplicaciones que requieren mucha CPU. Tal y como se explica en el JIT PHP RFC:

«Usar JIT puede abrir la puerta para que PHP se use con más frecuencia en otros casos, que no son web, en los que se requiere mucha CPU —donde los beneficios a nivel de rendimiento serán muy sustanciales— y para los cuales PHP probablemente ni siquiera se considera una opción actualmente.»

La compilación JIT o compilación en tiempo de ejecución, también conocida como «traducción dinámica», es una técnica útil para mejorar considerablemente el rendimiento. Consiste en ejecutar código informático que se compila directamente durante la ejecución de un programa; es decir, durante el tiempo de ejecución en lugar de antes de la ejecución.

Atributos

Esta nueva característica permite añadir metadatos estructurados directamente en la sintaxis nativa de PHP; sin usar anotaciones PHPDoc. Los atributos se pueden añadir a clases, funciones, interfaces, etc. Un concepto similar a los atributos ya existe en otros lenguajes de programación.

Tipos de unión

Los tipos de unión (union types, en inglés) permiten trasladar más tipos de datos de las anotaciones PHPDoc a las firmas de las funciones. El hecho de soportar tipos de unión directamente en el lenguaje proporciona diversas ventajas, como simplificar y optimizar considerablemente la sintaxis, minimizar el riesgo de que los tipos de datos se vuelvan obsoletos y la detección temprana de errores. No obstante, por el momento no se incluye soporte para union types arbitrarios.

Otras características de PHP 8

PHP 8 incluye más características como el constructor property promotion RFC, las expresiones Match o el operador nullsafe. También incluye mejoras en el sistema de tipos y en el tratamiento de errores, como: tipo de retorno estático, avisos de error reclasificados o verificaciones de tipos más estrictas para operadores aritméticos y bitwise.

Esta nueva versión también incluye nuevas funciones, clases e interfaces, como: token_get_all(), get_debut_type(), una clase weak map o una nueva interfaz stringable.

Puedes encontrar más detalles, ejemplos y documentación sobre PHP 8 en la página de la actualización.

Si te ha gustado, compártelo en redes sociales