noviembre 17, 2020

Principales actualizaciones de PHP 8

El próximo 26 de noviembre del 2020 será el lanzamiento oficial de PHP 8; luego de un largo periodo de incertidumbre, los desarrolladores anunciaron tal evento, lo cual coincide con el ciclo habitual de 3 años de PHP.

La próxima actualización PHP 8 traerá un montón de características poderosas y grandes mejoras en el lenguaje, así que te preguntaras ¿y que debemos esperar? ¿Qué es lo más importante que viene con PHP 8, la próxima gran versión del lenguaje?

Nuevas características de PHP 8

Se espera que la nueva versión de PHP presente nuevas características que ampliarán las posibilidades de los desarrolladores web. A continuación te contamos algunas de ellas:

Compilador JIT: Esta es la mayor novedad, la cual mejorara considerablemente el rendimiento. PHP no se compila, sino que se interpreta línea por línea y el compilador JIT (JUST IN TIME) compilaría parte del código durante el tiempo de ejecución, por lo que funcionaria de manera similar a la versión en cache del código.

Esta característica fue aprobada exitosamente mediante el uso de un script simple para comparar las versiones 5.3, 7.4 y 8 (con y sin JIT) para ello se ejecuto 100 veces cada versión y se calculo el tiempo promedio, los resultados fueron:

La extensión JSON estará siempre activa: En versiones anteriores del lenguaje de scripts, la extensión JSON podía desactivarse de forma opcional. Sin embargo, como JSON es un formato de datos muy importante, los desarrolladores de PHP han decidido dejar la extensión activada todo el tiempo. Esto debería simplificar el trabajo con PHP.

Temas de interés: 

Tipos de unión: Los union types también aparecen en otros lenguajes como C/C++, TypeScript o Haskell. Permiten crear uniones de dos o más tipos de datos, pudiéndose utilizar cualquiera de ellos. En el código, esto se vería de la siguiente manera:

Sin embargo, existe una limitación. Void no puede formar parte de un union type, ya que no devuelve ningún valor. Además, ¿las uniones nullable pueden escribirse con |null o ?, como te mostramos en este ejemplo:

Tipo de retorno estático: Static es un nombre de clase especial y en la nueva versión será un tipo de retorno válido junto a self & parent.

Usar ::class en los objetos: En versiones anteriores se tenía que usar get_class() para asignar una clase a los objetos. Ahora se puede aplicar ::class directamente a los objetos. Esto ayuda a mantener el código más limpio.

Interfaz encadenable: Stringable interface implementa una interfaz automáticamente. Hasta ahora, este paso debía hacerse manualmente. Esto puede hacerse para todas las strings o para aquellas donde __toString() esté implementado. 

fdiv: Con fdiv será posible una división por 0. Ahora se obtiene INF, -ING o NAN como valor de retorno.

Anotaciones de tipo: La nueva versión incluirá anotaciones de tipo correctas para todas las funciones y métodos internos.

Errores de tipo: Anteriormente, solo las funciones definidas por el usuario activaban los TypeErrors. Las funciones internas emitían una advertencia y daban null. Con PHP 8, las funciones internas también producirán TypeErrors.

¿Habrá complicaciones con los códigos antiguos?

Puesto que PHP 8 es una 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

Como te diste cuenta hoy, te contamos una parte de los cambios y mejoras claves que se esperan en el lanzamiento de PHP 8, ¿Qué te ha parecido la información? ¿Estas listo para probar nuevas características de PHP? ¿Cuál es tu favorita? Déjanos tu comentario.

(Visited 117 times, 1 visits today)
Escoge los temas de tu preferencia

¡Suscribete a nuestro Newsletter!

Cargando
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram