Desde Linux Darkcrizt  

PHP 8.3 entra en la version Alpha 1 y estos son los cambios propuestos

php

PHP es un lenguaje de programación que permite el desarrollo web o aplicaciones web dinámicas

Hace pocos días se dio a conocer la noticia de que fue presentada la primera versión alfa de la nueva rama del lenguaje de programación PHP 8.3, se han dado a conocer las mejoras que se tienen planeadas implementar, tales como la nueva función json_validate(), asi como las adiciones a la clase Randomizer agregada recientemente, la detección de desbordamiento de pila y más.

Para quienes desconocen de PHP (acrónimo recursivo de PHP: Hypertext Preprocessor), déjenme decirles que es un lenguaje de programación bastante popular, de código abierto, interpretado​ del lado del servidor y de uso general que se adapta especialmente al desarrollo web, ya que puede ser incrustado en HTML.

¿Cuáles son las principales innovaciones que presenta PHP 8.3?

Con el lanzamiento de esta versión de PHP 8.3 para pruebas Alpha 1 de las características previstas para su implementación se destaca por ejemplo la función json_validate() para verificar rápidamente si una cadena está en formato JSON sin realizar operaciones de decodificación, ya que anteriormente una cadena JSON constaba de un formato de datos especificado y si requería validar una cadena JSON, se requería de la función json_decode().

Otro de los cambios que se destaca, son las mejoras en el manejo de errores, asi como en la detección de desbordamiento de pila con las dos nuevas directivas zend.max_allowed_stack_size y zend.reserved_stack_size que se agregaron al archivo ini para definir el tamaño de pila máximo permitido y reservado. Se menciona que el beneficio de esta función es que las fallas de segmentación inducidas por desbordamiento de pila ya no generarán fallas de segmento, lo que facilita mucho la depuración.

Sobre el funcionamiento, se menciona que el programa se bloqueará cuando se acerque al agotamiento de la pila, cuando la pila se llene más que la diferencia entre los valores de zend.max_allowed_stack_size y zend.reserved_stack_size (la ejecución se detendrá sin llevar la situación a una falla de segmentación). De forma predeterminada, el valor de zend.max_allowed_stack_size se establece en 0 (0: el tamaño se determina automáticamente, puede establecer -1 para desactivar el límite).

Ademas de ello, tambien se destaca que se han agregado nuevos métodos a la clase Randomizer, que proporciona una API de alto nivel para generar números y secuencias pseudoaleatorias. En esta actualización se integran algunas pequeñas adiciones: getBytesFromString para generar una cadena de un tamaño determinado utilizando caracteres aleatorios presentes en otra cadena; getFloat y nextFloat para generar un número de punto flotante aleatorio dentro del rango especificado.

Tambien se destaca las mejoras en el manejo de excepciones de fecha/hora, ya que anteriormente PHP simplemente se limitaba a emitir una advertencia o error cuando algo salió mal en el manejo de fechas y horas, pero ahora, se agregó la generación de excepciones separadas DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError en caso de que surjan problemas en las operaciones de fecha y hora.

De los demás cambios que se destacan:

  • Se agregó la capacidad de extraer constantes usando la sintaxis de clase dinámica.
  • Se añadió la función getBytesFromString() se puede utilizar generar una cadena de la longitud deseada a partir de bytes de una cadena elegida al azar
  • Manejo mejorado de errores que ocurren al analizar datos serializados en la función unserialize(). En caso de problemas, unserialize() ahora devolverá E_WARNING en lugar de E_NOTICE.
  • Se añadió getfloat() que devuelve un flotante entre $min y $max
  • Se añadió la función nextfloat().
  • Se agregaron nuevas funciones POSIX posix_sysconf(), posix_pathconf(), posix_fpathconf() y posix_eaccess().
  • Al usar FFI, las funciones de C que tienen un tipo de retorno void ahora regresan null en lugar de regresar FFI\CData:void
    posix_getrlimit() ahora toma un parámetro opcional $respara permitir obtener un único límite de recursos.
  • gc_status() tiene cuatro nuevos campos: running, protected, fully buffer_size.
  • class_alias() ahora admite la creación de un alias de una clase interna.
  • mysqli_poll() ahora genera ValueError cuando se pasan los argumentos de lectura o error.
  • array_pad() ahora solo está limitado por la cantidad máxima de elementos que puede tener una matriz. Antes, solo era posible agregar como máximo 1048576 elementos a la vez.
  • Nuevas funciones posix: posix_sysconf(), posix_pathconf(), posix_fpathconf()yposix_eaccess()
  • Ejecutar proc_get_status() varias veces ahora siempre devolverá el valor correcto en los sistemas posix.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Cabe mencionar que el lanzamiento de la versión estable de PHP 8.3 está previsto para el 23 de noviembre.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.