blog

Hace escasas semanas se ha lanzado PHP 8.0 y ya lo tenemos disponible en Dynasoft.

PHP sigue siendo el lenguaje de programación más usado en Internet a la hora de generar páginas web dinámicas y Grupo Dynasoft ya te lo ofrece de forma totalmente gratuita, incluido con todos nuestros planes de Hosting.


Se trata de una importante actualización de este lenguaje de programación (major update) que presenta sobre todo una novedad importante:

Compilador Jit

Se trata de la principal novedad de PHP 8. Esta característica lleva años siendo desarrollada y supone un gran cambio para el lenguaje PHP. JIT (Just in Time) es un compilador que permitirá compilar ciertas partes del código en tiempo de ejecución. El compilador JIT aparece deshabilitado por defecto, pero podrá habilitarse desde el archivo php.ini y permitirá almacenar el código nativo de los archivos PHP en una región de la memoria compartida denominada OPcache. La activación del compilador JIT permite multiplicar el rendimiento de algunos tipos de tareas, sobre todo las que necesitan muchos recursos de CPU.
 

Otras mejoras

PHP 8 incorpora también diversos cambios menores como:

  • Uso de argumentos con nombre. Ya no hará falta hacer coincidir el orden de los parámetros con la lista de parámetros de los métodos utilizados.
  • Propagación de propiedades automática. Hasta ahora, al definir una propiedad en PHP, estábamos obligados a repetirla hasta en tres ocasiones antes de empezar a usarla. Esta nueva característica nos permite reducir significativamente la cantidad de código.
  • Soporte para union types. Antes solo podíamos especificar tipos de unión mediante anotaciones PHPdoc, pero ahora hay soporte para los tipos de unión en las firmas de las funciones, ahorrándonos así bastante código.
  • Match expression: PHP 8.0 incorpora una nueva expresión de coincidencia similar a switch, pero dotada de una semántica más segura, así como de la capacidad de devolver valores.
  • Nuevo operador nullsafe. Hasta esta versión, cuando queríamos comprobar en PHP que un getter no devolvía null, estábamos obligados a anidar sucesivos ifs. A partir de ahora, el primer getter que devuelva null anulará la ejecución de toda la cadena.
  • Expresión throw. Throw era una declaración, por lo que no resultaba posible usarla en lugares donde solo se permitiese el uso de una expresión. A partir de ahora, sin embargo, se considerará una expresión.
 

¿Habrá complicaciones con los códigos antiguos?

Puesto que PHP 8 es una nueva versión principal, hay que tener en cuenta que algunos códigos antiguos no serán compatibles. La mayoría de los cambios que podrían presentar complicaciones ya estaban obsoletos en las versiones 7.2, 7.3 y 7.4.

Los últimos cambios incluyen:
  • The real type
  • Magic quotes legacy
  • array_key_exists() with objects
  • FILTER_SANITIZE_MAGIC_QUOTES filter
  • Reflection export() methods
  • mb_strrpos() with encoding as 3rd argument
  • implode() parameter order mix
  • Unbinding $this from non-static closures
  • hebrevc() function
  • convert_cyr_string() function
  • money_format() function
  • ezmlm_hash() function
  • restore_include_path() function
  • allow_url_include ini directive

Si has mantenido tu código actualizado, no tendrás ningún problema, incluso teniendo la nueva actualización cambios incompatibles con versiones anteriores.

En la página oficial del proyecto PHP puedes encontrar una lista completa con todos los cambios: https://www.php.net/releases/8.0/en.php

Tambien puedes ponerte en contacto con nostros y te ayudaremos a migrar tu código a la nueva versión!