Nuevas funcionalidades añadidas en Symfony Polyfill 1.15

Los polyfills de Symfony son componentes que implementan algunas funcionalidades de PHP usando código PHP. Esto permite que tu aplicación puede usar funciones, clases y constantes que están definidas en versiones de PHP (y extensiones de PHP) que no tienes instaladas. La versión 1.15 de los polyfills se lanzó recientemente con las siguientes novedades.

Mejoras en el polyfill de PHP 8

PHP 8.0, la siguiente versión mayor de PHP que se lanzará el 3 de diciembre de 2020, añadirá algunas funciones interesantes. Algunas de ellas ya se han añadido al polyfill de Symfony, por lo que puedes empezar a utilizarlas hoy mismo en cualquier aplicación PHP.

Añadida la interfaz Stringable

Stringable es una nueva interfaz de PHP que se añade automáticamente a cualquier objeto que implemente el método __toString().

Puedes utilizarla en tu código para indicar que aceptas tanto cadenas de texto como objetos que se pueden convertir en cadenas. En PHP 8 puedes indicar esto mediante una "unión de tipos" como la siguiente: string|Stringable.

Puedes leer más sobre esta interfaz en el Stringable PHP RFC.

Esta funcionalidad fue contribuida por Nicolas Grekas en el pull request #224.

Añadida la función get_debug_type()

La nueva función get_debug_type() devuelve el tipo de la variable que se le pasa, no importa si es un objeto o una variable simple (integer, boolean, etc.) Esto permite simplificar el código que antes hacía uso de las funciones get_class() y gettype():

// Antes
throw new TypeError('Expected '.Foo::class.' got '.(is_object($bar) ? get_class($bar) : gettype($bar)));
 
// Después
throw new TypeError('Expected '.Foo::class.' got '.get_debug_type($bar));

Puedes leer más sobre esta función en el get_debug_type() PHP RFC.

Esta funcionalidad fue contribuida por Nicolas Grekas en el pull request #226.

Añadida la función str_contains()

La nueva función str_contains() comprueba si una cadena está contenida en otra cadena dada. Esta función es útil para reemplazar el código equivalente que hace uso de las funciones strpos() y strstr() y que muchas veces no es tan intuitivo como sería deseable.

Puedes leer más sobre esta función en el str_contains() PHP RFC.

Esta funcionalidad fue contribuida por Ion Bazan en el pull request #229.

Añadida la función preg_last_error_msg()

La nueva función preg_last_error_msg() devuelve el último error relacionado con las expresiones regulares en forma de cadena de texto formateada para humanos. En las versiones anteriores de Symfony tenías que generar ese mensaje convirtiendo el código de error devuelto por la función preg_last_error().

Esta funcionalidad fue contribuida por Nico Oelgart en el pull request #231.

Mejoras en el polyfill UUID

El polyfill UUID, que se usa en el nuevo componente UID, añadió soporte para generar UUIDs de tipo 3 y 5. Además, se añadió soporte para sistemas de 32-bit, ya que los polyfills tienen que ser compatibles con todo tipo de sistemas.

Esta funcionalidad fue contribuida por Grégoire Pineau y Nicolas Grekas en los pull requests #236 y #240.

Corregida la precarga de PHP

La precarga de PHP es una de las funcionalidades más importantes añadidas en PHP 7.4. Esta funcionalidad permite cargar algunas clases/funciones en memoria y reutilizarlas para todas las peticiones, con lo que se mejora bastante el rendimiento de la aplicación.

En la versión 1.15 de Symfony polyfill hemos corregido algunos errores que impedían la precarga de PHP en algunos componentes.

Esta funcionalidad fue contribuida por Nicolas Grekas en el pull request #239.


Fuente: New in Symfony Polyfills 1.15

Comentarios

Publicada el

30 de marzo de 2020

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.