PHP 8.5.6 Released!

Otros cambios

Cambios en los módulos SAPI

Apache2Handler

El módulo PHP ha sido renombrado de php7_module a php_module.

Funciones cambiadas

Reflection

Los resultados de ReflectionClass::getConstants() y ReflectionClass::getReflectionConstants() pueden ser filtrados a través de un nuevo parámetro filter. Tres nuevas constantes han sido añadidas para ser usadas junto a la clase:

Estándar

Las funciones matemáticas abs(), ceil(), floor() y round() ahora respetan correctamente la directiva strict_types. Anteriormente, coercionaban el primer argumento incluso en modo de tipo estricto.

Zip

Otros cambios a las extensiones

CURL

  • La extensión CURL ahora requiere al menos libcurl 7.29.0.

  • El parámetro obsoleto version de curl_version() ha sido eliminado.

Fecha y Tiempo

DatePeriod ahora implementa IteratorAggregate (instead of Traversable).

DOM

DOMNamedNodeMap y DOMNodeList ahora implementan IteratorAggregate (instead of Traversable).

Intl

IntlBreakIterator y ResourceBundle ahora implementan IteratorAggregate (instead of Traversable).

Enchant

La extensión enchant ahora usa libenchant-2 por defecto cuando esté disponible. libenchant versión 1 sigue siendo soportado pero está obsoleto y podría ser borrado en el futuro.

GD

JSON

La extensión JSON no puede ser deshabilitada y siempre será una parte integral de cualquier build PHP. De manera similar a la extensión de fecha.

MBString

La tabla unicode ha sido actualizada a la versión 13.0.0.

PDO

PDOStatement ahora implementa IteratorAggregate (instead of Traversable).

LibXML

La versión mínima requerida es 2.9.0. Esto significa que la carga externa está garantizada de ser deshabilitada por defecto y no habrá pasos extras para protegerse frente a los ataques XXE

MySQLi / PDO MySQL

  • Cuando mysqlnd no sea usado (que es la opción recomendada y por defecto), la versión libmysqlclient mínima soportada es ahora 5.5.

  • mysqli_result ahora implementa IteratorAggregate (instead of Traversable).

PGSQL / PDO PGSQL

Las extensiones PGQSQL y PDO PGSQL ahora requieren al menos libpq 9.1.

Readline

Llamar a readline_completion_function() antes de que un prompt interactivo comience (e.g. in auto_prepend_file) ahora sobreescribirá default interactive prompt completion function. Previamente readline_completion_function() solo trabajaba cuando se le llamaba antes de comenzar el prompt interactivo.

SimpleXML

SimpleXMLElement ahora implementa RecursiveIterator y absorve la funcionalidad de SimpleXMLIterator. SimpleXMLIterator es una extensión vacía de SimpleXMLElement.

Cambios en la gestión del archivo INI

  • com.dotnet_version es una nueva directiva INI para elegir la versión del framework .NET a usar en los objetos dotnet .

  • zend.exception_string_param_max_len es una nueva directiva INI para establecer la longitud máxima de la cadena de una traza de pila convertida a cadena.

EBCDIC

Los objetivos EBCDIC no estarán más soportadas, aunque es poco probable que todavía estuvieran trabajando en el primer lugar.

Rendimiento

  • Un compilador Just-In-Time (JIT) ha sido añadido a la extensión opcache

  • array_slice() de un array sin gaps no escaneará más el array completo para encontrar el offset del comienzo. Esto puede ser significante al reducir el runtime de la función con offsets más largos y tamaños más pequeños.

  • strtolower() ahora usa una implementación SIMD cuando se usa "C" LC_CTYPE locale (que es la opción por defecto).

add a note

User Contributed Notes 1 note

up
-1
barry dot nelson at amobiledevice dot com
3 years ago
If loading the PHP8 apache module on SuSe Linux, the configuration scripts incorrectly try to load it with automatically generated load statement of:
LoadModule php8_module                     /usr/lib64/apache2/mod_php8.so
This does not work, the patch below fixes the conf file generator...

--- /usr/share/apache2/get_module_list    2023-01-14 22:41:49.586825349 -0500
+++ /usr/share/apache2/get_module_list    2023-01-14 22:42:02.171600410 -0500
@@ -91,4 +91,8 @@
     esac
 
+    if [ "$module_id" = "php8_module" ]; then
+        module_id="php_module"
+    fi
+
     if [[ -f $module_path ]]; then
         printf "LoadModule %-30s %s\n" $module_id $module_path >&3
To Top