PHP 7.4 fue lanzado el 28 de noviembre de 2019. Es el posterior lanzamiento de PHP 7, incorporando a este último novedades como la reducción del uso de memoria y aumento significativo del rendimiento mejorando la experiencia digital del desarrollo de aplicaciones web.

A medida que la innovación y tu estrategia digital va en aumento, los lenguajes de programación también lo hacen, manteniendo el ritmo del entorno y proporcionando nuevas características, actualizaciones y nuevas mejoras. Este es uno de los elementos más importantes del éxito de un lenguaje de programación.

En ITDO somo amantes de PHP, debido a las frecuentes mejoras que constantemente realizan cada año. Desde el lanzamiento de PHP 5 en 2004, su rendimiento se ha duplicado e incluso triplicado. Además de disponer del framework HTTP más rápido con Swoole, o Frameworks como Symfony, CMS como WordPress, Drupal, Joomla o e-Commerce como Magento, Prestashop, etc (todos ellos líderes en mercado web). Es por ello que creo que PHP seguirá siendo muy popular y vital en el futuro. Sin duda, PHP es un lenguaje muy popular, los años venideros acreditarán nuestra afirmación.

Por eso no es de extrañar que, por segundo año consecutivo, PHP se encuentre entre los 10 lenguajes de programación más populares según StackOverflow Developer Survey 2019.

¿Qué novedades incorpora el nuevo PHP 7.4?

Olvida array_merge con Operador de propagación en expresión de matriz

PHP 7.4 te dará la capacidad de usar operadores de propagación en matrices que son más rápidas en comparación con array_merge. Hay dos razones principales:

  1. Un operador de propagación se considera una estructura de lenguaje y array_merge es una función.
  2. El tiempo de compilación se puede optimizar con matrices constantes aumentando el rendimiento.

Echa un vistazo al ejemplo:

Ejemplo de Operador de propagación en expresión de matriz con PHP 7.4

Además, es posible expandir la misma matriz varias veces, y, dado que los elementos normales se pueden agregar antes o después del operador de propagación, podrás usar su sintaxis en la matriz o llamadas a funciones.

Ejemplo de Operador de propagación en expresión de matriz mediante función con PHP 7.4

Funciones flecha (Arrow functions)

Las funciones anónimas o closures, son en esencia funciones de JavaScript. Desde ahora también están disponibles en PHP aunque el procedimiento de implementación y mantenimiento es algo más complejo.

Echa un vistazo al siguiente ejemplo:

Ejemplo de concatenación de resultados en PHP

Con PHP 7.4, podrás reescribirlo de la siguiente manera:

Ejemplo de concatenación de resultados en PHP 7.4 con Funciones flecha (Arrow functions) 

Las funciones flecha te permitirán limpiar drásticamente su código y hacer que la sintaxis sea más concisa, obteniendo un mayor nivel de legibilidad y simplicidad de código.

Soporte de propiedades (Typed properties’)

La introducción de propiedades es considerada una de las características de PHP actualizadas más importantes. Si bien anteriormente no había posibilidad de utilizar métodos de declaración para variables de clase y propiedades (incluidas las propiedades estáticas), ahora sí es posible  crear métodos específicos con facilidad.

Aquí tenemos un ejemplo básico:

Ejemplo de uso de propiedad int y string en una clase con PHP 7.4.

Puedes usar tipos nullable types, int, float, array, string, object, iterable, self, bool y parent (excluyendo void y callable) en propiedades estáticas o con la notación var:

Ejemplo de uso de propiedad bool con PHP 7.4.

Si intentas asignar un valor que no pertenece al tipo indicado, por ejemplo, declarando $name como string, recibirá un mensaje TypeError.

Ejemplo de asignación de un valor que no pertenece al tipo indicado con PHP 7.4.
TypeError al asignar un valor que no pertenece al tipo indicado con PHP 7.4.

Al igual que las funciones flecha, esta propiedad te permitirá tener un código más ordenado, simple y limpio.

Precarga (Preloading)

El objetivo principal de esta nueva característica es aumentar el rendimiento de PHP 7.4. En pocas palabras, la precarga es el proceso de cargar archivos, frameworks y bibliotecas en OPcache.

En el inicio del servidor – antes de que empiece a funcionar el código de cualquier aplicación – podemos cargar un cierto conjunto de archivos PHP en la memoria – y lograr que sus contenidos estén “permanentemente disponibles” a todas las peticiones subsecuentes que serán servidas por el servidor. Todas las funciones y clases definidas en estos archivos estarán disponibles como entidades internas.

Es importante tener en cuenta que estarán constantemente disponibles para todas las solicitudes posteriores sin verificaciones adicionales para los cambios del código fuente.

Puedes leer más sobre las limitaciones y expectativas de la precarga en la página oficial de la Precarga del RFC.

Referencias débiles (Weak References)

En PHP 7.4, la clase WeakReference te permitirá retener una referencia a un objeto que no prevenga que el objeto mismo sea destruido. No confundir con la clase WeakRef de la extensión Weakref. Con esta característica, se pueden implementar más fácilmente estructuras tipo caché.

Veamos un ejemplo de uso de esta referencia:

Ejemplo de Referencias débiles (Weak References) con PHP 7.4.

Operador ternario de depreciación asociativa (Coalescing assign operatorssign operator)

Un operador ternario de depreciación asociativa es otra característica nueva disponible en PHP 7.4. Es muy útil cuando necesitas aplicar un operador ternario junto con isset(). Esto te permitirá devolver el primer operando si existe, en el caso que no sea NULL. Si no, simplemente devolverá el segundo operando.

Aquí va un ejemplo:

Ejemplo de operador ternario de depreciación asociativa con PHP 7.4.

Conclusión

Hemos comentado 6 de las nuevas características que implementa el nuevo PHP 7.4. Desde aquí podrás revisar todas ellas. Al implementar PHP 7.4 en tus proyectos, reducirás el uso de memoria y aumentarás considerablemente el rendimiento de PHP. Además obtendrás la capacidad de evitar algunas limitaciones que encontrábamos en versiones anteriores, la posibilidad de escribir un código más limpio y por supuesto crear soluciones digitales más rápidas que nunca en PHP.

¿Utilizas PHP en tus desarrollos web? ¿Qué te parecen estas nuevas características? ¿Crees que PHP tiene un gran futuro por delante?

Photo by Harvey Sapir from Pexels

Referencias: