PHP 8.4.0 RC4 available for testing

Otros cambios

Cambios en los módulos SAPI

Apache2Handler

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

Fucniones 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:

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 al INI File Handling

  • 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 del string de una stringified stack strace.

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
0
barry dot nelson at amobiledevice dot com
1 year 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