PHP 8.5 introduce la extensión URI, el operador pipe y mejoras de sintaxis
PHP 8.5 introduce una nueva extensión URI, el operador pipe y mejoras en la sintaxis de las claves, ofreciendo un rendimiento más rápido y un código más limpio.
PHP, un lenguaje de programación del lado del servidor utilizado principalmente para crear sitios web y aplicaciones web dinámicas, acaba de lanzar la versión 8.5, una actualización importante que añade nueva sintaxis, soporte ampliado de atributos, mejoras de rendimiento y múltiples funciones impulsadas por RFC.
Una de las adiciones más significativas es la nueva extensión URI integrada. Proporciona una API consistente para analizar y modificar URLs, siguiendo tanto el RFC 3986 como los estándares de URL de WHATWG. Respaldada por uriparser y Lexbor, reemplaza a parse_url() en escenarios donde se requiere un manejo preciso y conforme a los estándares.
Otro aspecto destacado de esta versión es la introducción del operador pipe (|>), que permite encadenar funciones de izquierda a derecha. Esto elimina las llamadas a funciones profundamente anidadas, haciendo que los pipelines de transformación sean más fáciles de leer y mantener. Los valores se desplazan directamente a través de los llamables, incluidas las funciones flecha y las aplicaciones parciales como trim(...).
PHP 8.5 también mejora el manejo de objetos con la sintaxis clone-with. Los desarrolladores ahora pueden actualizar propiedades seleccionadas al clonar un objeto mediante clone($obj, ['prop' => valor]), simplificando el patrón «with-er» y haciéndolo utilizable en clases de solo lectura sin código repetitivo.
Otra novedad es el atributo #[\NoDiscard], que genera una advertencia cuando se ignora involuntariamente el valor de retorno de una función. Esto ayuda a detectar errores en las API donde se requiere un valor devuelto para un funcionamiento correcto, con (void) disponible cuando el desarrollador elige explícitamente descartarlo.
El lenguaje también amplía el soporte para expresiones en tiempo de compilación. Ahora se permiten cierres estáticos y llamadas de primera clase en expresiones constantes, lo que los hace utilizables en argumentos de atributos, valores predeterminados de propiedades y constantes de clase.
Las mejoras relacionadas con el rendimiento incluyen manejadores cURL compartidos persistentes. Con curl_share_init_persistent(), los manejadores compartidos sobreviven entre solicitudes y reutilizan los datos de conexión previamente inicializados, reduciendo la sobrecarga en operaciones de red repetidas para aplicaciones de larga duración.
Dos nuevas funciones auxiliares, array_first() y array_last(), ofrecen un manejo más claro para casos comunes. Ambas devuelven null para arreglos vacíos, lo que simplifica la composición con el operador de fusión de null y elimina la necesidad de verificar manualmente las claves.
Los cambios adicionales abarcan un amplio conjunto de características del lenguaje. Los errores fatales ahora incluyen rastros de retroceso, los atributos pueden dirigirse a constantes y las propiedades estáticas admiten visibilidad asimétrica.
Las propiedades pueden marcarse como final mediante la promoción de propiedades del constructor. Además, PHP también agrega nuevos métodos DOM como getElementsByClassName() y insertAdjacentHTML(), junto con nuevas funciones utilitarias como grapheme_levenshtein().
Finalmente, las desaprobaciones en PHP 8.5 incluyen la eliminación de nombres de conversiones no canónicas, la desaprobación del operador de acento grave como alias de shell_exec(), advertencias por conversiones inválidas de float a int y límites en el uso de null como un índice de array. Los métodos de serialización más antiguos __sleep() y __wakeup() ahora están desaprobados de manera suave en favor de __serialize() y __unserialize().
Para obtener más información sobre todos los cambios en PHP 8.5, consulte el anuncio oficial de la versión o esta página.
