944 063 154

PHP 8: los cambios de su nueva versión

Publicado enDesarrollo y Programación en diciembre 16, 2020 10:00 am

Aunque ya hace algún tiempo que sabíamos de ello, no ha sido hasta hace unos días cuando se ha lanzado PHP 8, la nueva versión del lenguaje de programación. Una versión mayor con la que se espera ayudar a los desarrolladores a crear un código mucho más limpio, de mejor calidad y que se ejecute más rápido.

Ejecución más rápida con PHP 8

Aunque el funcionamiento habitual de PHP se basa en interpretar el código línea a línea durante su ejecución y traducirlo a un lenguaje ordenador, con PHP 8 se incluye JIT, un compilador Just-in-time. JIT almacena las traducciones de código que va realizando PHP para evitar repetir esa traducción y hacer más rápida la ejecución del código.

Hasta el momento la llegada de Opcache en PHP 5.5 era una de las principales mejoras en cuanto a rendimiento web. Esta extensión hacía que ya no fuera necesario que PHP cargase y analizara cada una de las peticiones. Asimismo, con la implementación de la precarga en PHP 7.4 se permitía almacenar varios scripts en la memoria de Opcache previo a la ejecución del código. Con JIT el tiempo necesario para algunas de las ejecuciones de los Opcode se reduce aún más, ya que el compilador interviene en los procesos a los que Opcache no puede llegar; entre otras cosas por ser independientes unos de otros.

A pesar de todas las ventajas que aporta JIT a PHP 8, también hay algunos puntos negativos. Como que el uso del compilador puede dificultar la resolución de errores en el código al no saber qué fragmentos de código son originales y cuáles interpretados. Además, esta funcionalidad aún no es compatible con WordPress, aunque los desarrolladores del CMS están trabajando en ello. En cualquier caso, puesto que los mayores tiempos de respuesta de WordPress provienen de MySQL, JIT poco puede hacer.

Código de calidad y más corto

Entre los principales cambios de PHP 8 llegan la creación de un código de mayor calidad y más sintetizado. En esta versión desaparecerán muchas de las advertencias y avisos al convertirse en excepciones o errores, más fácilmente detectables y registrables. Con este cambio pueden aparecer problemas que hasta el momento permanecían ocultos, tanto para el desarrollador como para los usuarios de un sitio web.

Relacionado con la facilidad de lectura del código, en lugar de tener que encadenar varios ‘if’, es posible utilizar el operador ‘nullsafe’ para reunirlos todos en una misma línea. De esta forma no solo se hace más corto el código, sino que además estará más ordenado y será más fácil de leer. Además de poder utilizar directamente ::class, en lugar de get_class() para conocer cuál es la clase de un objeto o una variable.

JSON activado por defecto

En versiones anteriores a PHP 8, JSON podía activarse o desactivarse de forma opcional. Al tratarse de un formato muy importante para el intercambio de datos, en esta versión de PHP viene activado de forma predeterminada. Con este cambio, se simplifica en gran medida el trabajo con PHP.

Novedades en ‘union types’

Desde hace unas cuantas versiones, los desarrolladores de PHP han tratado de establecer los diferentes argumentos que una función o método podía adoptar. En PHP 8 aparecen nuevas funciones ‘union types’ para especificar dos o más tipos de valor para cada una de las funciones o argumentos. Así, la función devolverá un número entero o uno flotante. En versiones anteriores de PHP los ‘union types’ solo podían especificarse como anotaciones en phpdoc.

Estas mejoras en cuanto a los ‘union types’ permiten indicar los tipos de retornos posibles. De forma que cualquier error en la programación pueda solucionarse en una fase temprana, evitando así problemas mayores después.

Como ocurre con algunas de las nuevas funcionalidades, estos union types no son compatibles con void. Esta función por sí misma no devuelve ningún valor, por lo que no puede utilizarse en esta función.

Por el momento PHP 8 aún no está disponible en nuestros servicios, ya que para garantizar su correcto funcionamiento es necesario realizar pruebas previamente. Además, al tratarse de una versión mayor será necesario adaptar las webs a esta nueva versión para evitar que algunas de las funcionalidades dejen de estar operativas. En cualquier caso, en cuanto PHP 8 sea estable en nuestra plataforma cloud, podrás actualizar tú mismo la versión de PHP desde el panel Plesk; o de forma manual en caso de que no dispongas de panel de control.