mirror of
https://github.com/php/doc-es.git
synced 2026-03-23 23:12:09 +01:00
Add PHP 8.5 migration guide (#313)
* Add PHP 8.5 migration guide (not completed) * Migrations text consistency * Fix white-space * Add PHP 8.5 migration guide * Migrations text consistency * PHP 8.5 deprecations: remove output handler return deprecation
This commit is contained in:
committed by
GitHub
parent
668fe72be5
commit
73882af785
@@ -4,7 +4,7 @@
|
||||
<!-- Reviewed: yes Maintainer: pmartin -->
|
||||
|
||||
<sect1 xml:id="migration56.incompatible">
|
||||
<title>Modificaciones que causan incompatibilidad ascendente</title>
|
||||
<title>Cambios incompatibles con versiones anteriores</title>
|
||||
<simpara>
|
||||
Aunque la mayoría del código PHP 5 existente debería funcionar sin ninguna
|
||||
modificación, debe tener en cuenta algunas incompatibilidades ascendentes:
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- Reviewed: yes Maintainer: girgias -->
|
||||
|
||||
<sect1 xml:id="migration56.new-features" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Nuevas funcionalidades</title>
|
||||
<title>Nuevas características</title>
|
||||
|
||||
<sect2 xml:id="migration56.new-features.const-scalar-exprs">
|
||||
<title>Expresiones de constante</title>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- Reviewed: yes Maintainer: girgias -->
|
||||
|
||||
<sect1 xml:id="migration70.incompatible">
|
||||
<title>Cambios que provocan incompatibilidad ascendente</title>
|
||||
<title>Cambios incompatibles con versiones anteriores</title>
|
||||
|
||||
&appendices.migration70.incompatible.error-handling;
|
||||
&appendices.migration70.incompatible.variable-handling;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- Reviewed: yes Maintainer: Marqitos -->
|
||||
|
||||
<sect1 xml:id="migration70.new-features" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Nuevas funcionalidades</title>
|
||||
<title>Nuevas características</title>
|
||||
|
||||
<sect2 xml:id="migration70.new-features.scalar-type-declarations">
|
||||
<title>Declaraciones de tipo escalar</title>
|
||||
|
||||
@@ -4,21 +4,21 @@
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<sect1 xml:id="migration71.deprecated">
|
||||
<title>Características obsoletas en PHP 7.1.x</title>
|
||||
|
||||
<title>Funcionalidades obsoletas en PHP 7.1.x</title>
|
||||
|
||||
<sect2 xml:id="migration71.deprecated.ext-mcrypt">
|
||||
<title>ext/mcrypt</title>
|
||||
|
||||
|
||||
<para>
|
||||
La extensión mcrypt fue declarada «abandonware» hace casi una década, y también
|
||||
era bastante compleja de utilizar. Por tanto, está obsoleta en favor de
|
||||
OpenSSL, y será eliminada del núcleo y puesta en PECL en PHP 7.2.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 xml:id="migration71.deprecated.eval-option-for-mb-ereg-replace">
|
||||
<title>Opción 'eval' para <function>mb_ereg_replace</function> y <function>mb_eregi_replace</function></title>
|
||||
|
||||
|
||||
<para>
|
||||
El modificador de patrón <literal>e</literal> está obsoleto para las funciones
|
||||
<function>mb_ereg_replace</function> y
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<!-- EN-Revision: 19e8122137a1d42ed60f17fe2c0c2b69b0b2d16b Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<sect1 xml:id="migration71.incompatible">
|
||||
<title>Modificaciones que causan incompatibilidad ascendente</title>
|
||||
<title>Cambios incompatibles con versiones anteriores</title>
|
||||
|
||||
<sect2 xml:id="migration71.incompatible.too-few-arguments-exception">
|
||||
<title>Excepción al pasar muy pocos argumentos de función</title>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- Reviewed: yes Maintainer: PhilDaiguille -->
|
||||
|
||||
<sect1 xml:id="migration71.new-features" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Nuevas funcionalidades</title>
|
||||
<title>Nuevas características</title>
|
||||
|
||||
<sect2 xml:id="migration71.new-features.nullable-types">
|
||||
<title>Tipo nullable</title>
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
|
||||
<sect1 xml:id="migration71.new-functions">
|
||||
<title>Nuevas funciones</title>
|
||||
|
||||
|
||||
<sect2 xml:id="migration71.new-functions.core">
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>
|
||||
@@ -32,10 +32,10 @@
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 xml:id="migration71.new-functions.closure">
|
||||
<title><link linkend="class.closure">Closure</link></title>
|
||||
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>
|
||||
@@ -44,10 +44,10 @@
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 xml:id="migration71.new-functions.curl">
|
||||
<title><link linkend="book.curl">CURL</link></title>
|
||||
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>
|
||||
@@ -66,10 +66,10 @@
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 xml:id="migration71.new-functions.openssl">
|
||||
<title><link linkend="book.openssl">OpenSSL</link></title>
|
||||
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>
|
||||
@@ -78,10 +78,10 @@
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 xml:id="migration71.new-functions.session">
|
||||
<title><link linkend="book.session">Session</link></title>
|
||||
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>
|
||||
@@ -95,10 +95,10 @@
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 xml:id="migration71.new-functions.spl">
|
||||
<title><link linkend="book.spl">SPL</link></title>
|
||||
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>
|
||||
@@ -107,10 +107,10 @@
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 xml:id="migration71.new-functions.pcntl">
|
||||
<title><link linkend="book.pcntl">PCNTL</link></title>
|
||||
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<sect1 xml:id="migration71.windows-support" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Soporte Windows</title>
|
||||
<title>Soporte para Windows</title>
|
||||
|
||||
<sect2 xml:id="migration71.windows-support.long-and-utf8-path">
|
||||
<title>Soporte para rutas largas y UTF-8</title>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- Reviewed: yes -->
|
||||
|
||||
<sect1 xml:id="migration72.deprecated">
|
||||
<title>Características obsoletas en PHP 7.2.x</title>
|
||||
<title>Funcionalidades obsoletas en PHP 7.2.x</title>
|
||||
|
||||
<sect2 xml:id="migration72.deprecated.unquoted-strings">
|
||||
<title>Cadenas sin entrecomillar</title>
|
||||
@@ -137,7 +137,7 @@ string(11) "INEXISTENTE"
|
||||
<title>Función <function>each</function></title>
|
||||
|
||||
<para>
|
||||
Esta función es mucho más lenta iterando que un
|
||||
Esta función es mucho más lenta iterando que un
|
||||
<literal>foreach</literal> normal, y causa problemas de implementación con algunos
|
||||
cambios del lenguaje. Ha sido por tanto marcada como obsoleta.
|
||||
</para>
|
||||
@@ -148,7 +148,7 @@ string(11) "INEXISTENTE"
|
||||
|
||||
<para>
|
||||
Usar <function>assert</function> con una cadena como argumento requería que la cadena
|
||||
fuera <function>eval</function>uada. Debido al potencial para ejecución remota
|
||||
fuera <function>eval</function>uada. Debido al potencial para ejecución remota
|
||||
de código, el uso de <function>assert</function> con una cadena como argumento ha sido
|
||||
marcado como obsoleto en favor del uso de expresiones booleanas.
|
||||
</para>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<sect1 xml:id="migration73.deprecated">
|
||||
<title>Características obsoletas</title>
|
||||
<title>Funcionalidades obsoletas</title>
|
||||
|
||||
<sect2 xml:id="migration73.deprecated.core">
|
||||
<title>Núcleo PHP</title>
|
||||
@@ -24,8 +24,8 @@
|
||||
|
||||
<para>
|
||||
Declarando una función llamada <literal>assert()</literal> dentro de un espacio
|
||||
de nombres es obsoleto. La función <function>assert</function> está sujeta a un manejo
|
||||
especial por parte del motor, lo que puede dar lugar a un comportamiento inconsistente al definir una
|
||||
de nombres es obsoleto. La función <function>assert</function> está sujeta a un manejo
|
||||
especial por parte del motor, lo que puede dar lugar a un comportamiento inconsistente al definir una
|
||||
función con el mismo nombre.
|
||||
</para>
|
||||
</sect3>
|
||||
@@ -119,46 +119,46 @@
|
||||
en su lugar.
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara><function>mbregex_encoding</function></simpara>
|
||||
<simpara><function>mbregex_encoding</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mbereg</function></simpara>
|
||||
<simpara><function>mbereg</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mberegi</function></simpara>
|
||||
<simpara><function>mberegi</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mbereg_replace</function></simpara>
|
||||
<simpara><function>mbereg_replace</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mberegi_replace</function></simpara>
|
||||
<simpara><function>mberegi_replace</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mbsplit</function></simpara>
|
||||
<simpara><function>mbsplit</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mbereg_match</function></simpara>
|
||||
<simpara><function>mbereg_match</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mbereg_search</function></simpara>
|
||||
<simpara><function>mbereg_search</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mbereg_search_pos</function></simpara>
|
||||
<simpara><function>mbereg_search_pos</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mbereg_search_regs</function></simpara>
|
||||
<simpara><function>mbereg_search_regs</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mbereg_search_init</function></simpara>
|
||||
<simpara><function>mbereg_search_init</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mbereg_search_getregs</function></simpara>
|
||||
<simpara><function>mbereg_search_getregs</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mbereg_search_getpos</function></simpara>
|
||||
<simpara><function>mbereg_search_getpos</function></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><function>mbereg_search_setpos</function></simpara>
|
||||
<simpara><function>mbereg_search_setpos</function></simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
@@ -170,7 +170,7 @@
|
||||
<para>
|
||||
La configuración ini <link
|
||||
linkend="ini.pdo-odbc.db2-instance-name">pdo_odbc.db2_instance_name</link>
|
||||
ha sido formalmente desaprobada. Está obsoleto en la documentación
|
||||
ha sido formalmente desaprobada. Está obsoleto en la documentación
|
||||
a partir de PHP 5.1.1.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<sect1 xml:id="migration73.incompatible" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Modificaciones que causan incompatibilidad ascendente</title>
|
||||
<title>Cambios incompatibles con versiones anteriores</title>
|
||||
|
||||
<sect2 xml:id="migration73.incompatible.core">
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<sect1 xml:id="migration73.new-features" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Nuevas funcionalidades</title>
|
||||
<title>Nuevas características</title>
|
||||
|
||||
<sect2 xml:id="migration73.new-features.core">
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<sect1 xml:id="migration73.windows-support" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Soporte de Windows</title>
|
||||
<title>Soporte para Windows</title>
|
||||
|
||||
<sect2 xml:id="migration73.windows-support.core">
|
||||
<title>Núcleo PHP</title>
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<!-- EN-Revision: c308ed37a98decb1959ed47dc149a43d6c71ec60 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<sect1 xml:id="migration74.incompatible" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Modificaciones que causan incompatibilidad ascendente</title>
|
||||
<title>Cambios incompatibles con versiones anteriores</title>
|
||||
|
||||
<sect2 xml:id="migration74.incompatible.core">
|
||||
<title>PHP Core</title>
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
<sect3 xml:id="migration74.incompatible.core.non-array-access">
|
||||
<title>Acceso de tipo array a no-arrays</title>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<sect1 xml:id="migration74.new-features" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Nuevas funcionalidades</title>
|
||||
<title>Nuevas características</title>
|
||||
|
||||
<sect2 xml:id="migration74.new-features.core">
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<simpara>
|
||||
<link linkend="book.ibase">Firebird/Interbase</link>
|
||||
- el acceso a una base de datos basada en InterBase y/o Firebird sigue siendo
|
||||
con el driver PDO Firebird.
|
||||
con el driver PDO Firebird.
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<sect1 xml:id="migration74.windows-support" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Gestión de Windows</title>
|
||||
<title>Soporte para Windows</title>
|
||||
|
||||
<sect2 xml:id="migration74.windows-support.configure">
|
||||
<title>Flags <command>configure</command></title>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<!-- EN-Revision: ca9dbbbd2dcac26d56bbbb87539297e4589bd709 Maintainer: julionc Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<sect1 xml:id="migration80.deprecated">
|
||||
<title>Características obsoletas</title>
|
||||
<title>Funcionalidades obsoletas</title>
|
||||
|
||||
<sect2 xml:id="migration80.deprecated.core">
|
||||
<title>Núcleo PHP</title>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<title>Nuevas características</title>
|
||||
|
||||
<sect2 xml:id="migration80.new-features.core">
|
||||
<title>PHP Core</title>
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
<sect3 xml:id="migration80.new-features.core.named-arguments">
|
||||
<title>Argumentos nombrados</title>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<!-- EN-Revision: f164f8c8627d55910084c94e1dcea93b4a57c4a3 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration81.deprecated">
|
||||
<title>Funcionalidades Depreciadas</title>
|
||||
<title>Funcionalidades obsoletas</title>
|
||||
|
||||
<sect2 xml:id="migration81.deprecated.core">
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<title>Cambios incompatibles con versiones anteriores</title>
|
||||
|
||||
<sect2 xml:id="migration81.incompatible.core">
|
||||
<title>PHP Core</title>
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
<sect3 xml:id="migration81.incompatible.core.globals-access">
|
||||
<title>Restricciones de acceso a $GLOBALS</title>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<!-- EN-Revision: 161dde4fe721309398dd324edbf02aec409f127b Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: yes Maintainer: Marqitos -->
|
||||
<sect1 xml:id="migration81.new-features" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Nuevas Funcionalidades</title>
|
||||
<title>Nuevas características</title>
|
||||
|
||||
<sect2 xml:id="migration81.new-features.core">
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<title>Funcionalidades obsoletas</title>
|
||||
|
||||
<sect2 xml:id="migration82.deprecated.core">
|
||||
<title>PHP Core</title>
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
<sect3 xml:id="migration82.deprecated.core.dynamic-properties">
|
||||
<title>Uso de propiedades dinámicas</title>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<!-- EN-Revision: 763b31ef61c2aceb779c333c4577d669bf63ea48 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: yes Maintainer: Marqitos -->
|
||||
<sect1 xml:id="migration82.incompatible" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Modificaciones que causan incompatibilidad ascendente</title>
|
||||
<title>Cambios incompatibles con versiones anteriores</title>
|
||||
|
||||
<sect2 xml:id="migration82.incompatible.date">
|
||||
<title>Fecha</title>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<!-- EN-Revision: 681fd84dbdef6c0f8fe92848677d95a993b66143 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<sect1 xml:id="migration82.new-features" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Nuevas Funcionalidades</title>
|
||||
<title>Nuevas características</title>
|
||||
|
||||
<sect2 xml:id="migration82.new-features.core">
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<!-- EN-Revision: 9c828621cbce488cf6306b21c39e208f847eabd5 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration83.deprecated" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Deprecación de funciones</title>
|
||||
<title>Funcionalidades obsoletas</title>
|
||||
|
||||
<sect2 xml:id="migration83.deprecated.core">
|
||||
<title>PHP Core</title>
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
<sect3 xml:id="migration83.deprecated.core.saner-inc-dec-operators">
|
||||
<title>Operadores de incremento/decremento más seguros</title>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<!-- EN-Revision: a989e5f21db7902c0028ad51e9adc94024d13216 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration83.incompatible" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Cambios incompatibles</title>
|
||||
<title>Cambios incompatibles con versiones anteriores</title>
|
||||
|
||||
<sect2 xml:id="migration83.incompatible.core">
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 617b58b308d1f1916efaa4a3eb158fed251ae439 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<!-- Reviewed: No Maintainer: Marqitos -->
|
||||
<sect1 xml:id="migration83.new-features" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Nuevas características</title>
|
||||
|
||||
<sect2 xml:id="migration83.new-features.core">
|
||||
<title>PHP Core</title>
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
<sect3 xml:id="migration83.new-features.core.readonly-modifier-improvements">
|
||||
<title>Modificación de solo lectura</title>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<title>Soporte para Windows</title>
|
||||
|
||||
<sect2 xml:id="migration83.windows-support.core">
|
||||
<title>Core</title>
|
||||
<title>Núcleo</title>
|
||||
|
||||
<para>
|
||||
El soporte mínimo para Windows se ha incrementado a Windows 8
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<!-- EN-Revision: e3fc9c49817a5249d1efb9c79c93307ecebf2f53 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration84.deprecated">
|
||||
<title>Funcionalidades desaprobadas</title>
|
||||
<title>Funcionalidades obsoletas</title>
|
||||
|
||||
<sect2 xml:id="migration84.deprecated.core">
|
||||
<title>PHP Core</title>
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
<sect3 xml:id="migration84.deprecated.core.implicitly-nullable-parameter">
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecate-implicitly-nullable-types -->
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<!-- EN-Revision: 64dc79d6c9710dddf196aa28e3c5f63b562e7aef Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration84.incompatible" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Cambios no retrocompatibles</title>
|
||||
<title>Cambios incompatibles con versiones anteriores</title>
|
||||
|
||||
<simpara>
|
||||
Salvo mención contraria en esta sección,
|
||||
@@ -13,7 +13,7 @@
|
||||
</simpara>
|
||||
|
||||
<sect2 xml:id="migration84.incompatible.core">
|
||||
<title>PHP Core</title>
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
<!-- RFC: https://wiki.php.net/rfc/exit-as-function -->
|
||||
<sect3 xml:id="migration84.incompatible.core.exit">
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<title>Nuevas clases, enumeraciones e interfaces</title>
|
||||
|
||||
<sect2 xml:id="migration84.new-classes.core">
|
||||
<title>Core</title>
|
||||
<title>Núcleo</title>
|
||||
<simplelist>
|
||||
<member><classname>Deprecated</classname></member>
|
||||
<member><classname>RequestParseBodyException</classname></member>
|
||||
@@ -134,7 +134,7 @@
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration84.new-classes.standard">
|
||||
<title>Standard</title>
|
||||
<title>Estándar</title>
|
||||
|
||||
<simplelist>
|
||||
<!-- Should this use <enumname> ? -->
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
<!-- EN-Revision: 22583751fbfdaa3eaa41aeb6470d1343f5cb2c78 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration84.new-features">
|
||||
<title>Nuevas Características</title>
|
||||
<title>Nuevas características</title>
|
||||
|
||||
<!-- TODO: Características principales para 8.4 -->
|
||||
<sect2 xml:id="migration84.new-features.core">
|
||||
<title>PHP Core</title>
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
<!-- RFC: https://wiki.php.net/rfc/property-hooks -->
|
||||
<sect3 xml:id="migration84.new-features.core.property-hooks">
|
||||
<title>Property Hooks</title>
|
||||
<title>Hooks de propiedad</title>
|
||||
|
||||
<simpara>
|
||||
Las propiedades de los objetos pueden ahora tener lógica adicional asociada con sus
|
||||
@@ -123,7 +123,7 @@ $object = $reflector->newLazyGhost($initializer);
|
||||
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecated_attribute -->
|
||||
<sect3 xml:id="migration84.new-features.core.deprecated-attribute">
|
||||
<title><code>#[\Deprecated]</code> attribute</title>
|
||||
<title>Atributo <code>#[\Deprecated]</code></title>
|
||||
|
||||
<simpara>
|
||||
El nuevo atributo <classname>Deprecated</classname> puede ser utilizado para marcar funciones, métodos,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<title>Nuevas funciones</title>
|
||||
|
||||
<sect2 xml:id="migration84.new-functions.core">
|
||||
<title>Core</title>
|
||||
<title>Núcleo</title>
|
||||
|
||||
<simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/rfc1867-non-post -->
|
||||
@@ -27,7 +27,7 @@
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration84.new-functions.date">
|
||||
<title>Date</title>
|
||||
<title>Fecha</title>
|
||||
<simplelist>
|
||||
<member>
|
||||
<methodname>DateTime::createFromTimestamp</methodname>
|
||||
@@ -233,7 +233,7 @@
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration84.new-functions.standard">
|
||||
<title>Standard</title>
|
||||
<title>Estándar</title>
|
||||
|
||||
<simplelist>
|
||||
<member><function>http_get_last_response_headers</function></member>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<title>Otros cambios</title>
|
||||
|
||||
<sect2 xml:id="migration84.other-changes.core">
|
||||
<title>Cambio en el núcleo</title>
|
||||
<title>Cambios en el núcleo</title>
|
||||
|
||||
<sect3 xml:id="migration84.other-changes.core.closures">
|
||||
<title>Clausuras</title>
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<!-- EN-Revision: d64e811eac61a5c7c744312d8bc6e2244de81488 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration84.windows-support">
|
||||
<title>Soporte Windows</title>
|
||||
<title>Soporte para Windows</title>
|
||||
|
||||
<sect2 xml:id="migration84.windows-support.core">
|
||||
<title>Core</title>
|
||||
<title>Núcleo</title>
|
||||
|
||||
<simpara>
|
||||
La compilación con Visual Studio ahora requiere al menos Visual Studio 2019.
|
||||
|
||||
57
appendices/migration85.xml
Normal file
57
appendices/migration85.xml
Normal file
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Marqitos Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<appendix xml:id="migration85" xmlns="http://docbook.org/ns/docbook">
|
||||
<title>Migración de PHP 8.4.x a PHP 8.5.x</title>
|
||||
|
||||
<simpara>
|
||||
Esta nueva versión menor trae consigo una serie de
|
||||
<link linkend="migration85.new-features">nuevas características</link> y
|
||||
<link linkend="migration85.incompatible">algunas incompatibilidades</link>
|
||||
que deben probarse antes de cambiar las versiones de PHP en entornos
|
||||
de producción.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
&manual.migration.seealso;
|
||||
<link linkend="migration71">7.1.x</link>,
|
||||
<link linkend="migration72">7.2.x</link>,
|
||||
<link linkend="migration73">7.3.x</link>,
|
||||
<link linkend="migration74">7.4.x</link>,
|
||||
<link linkend="migration80">8.0.x</link>,
|
||||
<link linkend="migration81">8.1.x</link>,
|
||||
<link linkend="migration82">8.2.x</link>.
|
||||
<link linkend="migration83">8.3.x</link>.
|
||||
<link linkend="migration84">8.4.x</link>.
|
||||
</simpara>
|
||||
|
||||
&appendices.migration85.new-features;
|
||||
&appendices.migration85.new-classes;
|
||||
&appendices.migration85.new-functions;
|
||||
&appendices.migration85.constants;
|
||||
&appendices.migration85.incompatible;
|
||||
&appendices.migration85.deprecated;
|
||||
&appendices.migration85.other-changes;
|
||||
&appendices.migration85.windows-support;
|
||||
|
||||
</appendix>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
192
appendices/migration85/constants.xml
Normal file
192
appendices/migration85/constants.xml
Normal file
@@ -0,0 +1,192 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Marqitos Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<sect1 xml:id="migration85.constants">
|
||||
<title>Nuevas constantes globales</title>
|
||||
|
||||
<sect2 xml:id="migration85.constants.core">
|
||||
<title>Núcleo</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>PHP_BUILD_DATE</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>PHP_BUILD_PROVIDER</constant>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.curl">
|
||||
<title>cURL</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>CURLINFO_USED_PROXY</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLINFO_HTTPAUTH_USED</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLINFO_PROXYAUTH_USED</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLINFO_CONN_ID</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLINFO_QUEUE_TIME_T</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLOPT_INFILESIZE_LARGE</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLFOLLOW_ALL</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLFOLLOW_OBEYCODE</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLFOLLOW_FIRSTONLY</constant>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.filter">
|
||||
<title>Filter</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>FILTER_THROW_ON_FAILURE</constant>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>DECIMAL_COMPACT_SHORT</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>DECIMAL_COMPACT_LONG</constant>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.openssl">
|
||||
<title>OpenSSL</title>
|
||||
|
||||
<simplelist>
|
||||
<member><constant>OPENSSL_PKCS1_PSS_PADDING</constant></member>
|
||||
<member><constant>PKCS7_NOSMIMECAP</constant></member>
|
||||
<member><constant>PKCS7_CRLFEOL</constant></member>
|
||||
<member><constant>PKCS7_NOCRL</constant></member>
|
||||
<member><constant>PKCS7_NO_DUAL_CONTENT</constant></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.posix">
|
||||
<title>POSIX</title>
|
||||
|
||||
<simplelist>
|
||||
<member><constant>POSIX_SC_OPEN_MAX</constant></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.sockets">
|
||||
<title>Sockets</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>IPPROTO_ICMP</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>IPPROTO_ICMPV6</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_FUNCTION_BLK</constant> (Solo FreeBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_FUNCTION_ALIAS</constant> (Solo FreeBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_REUSPORT_LB_NUMA</constant> (Solo FreeBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_REUSPORT_LB_NUMA_NODOM</constant> (Solo FreeBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_REUSPORT_LB_NUMA_CURDOM</constant> (Solo FreeBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_BBR_ALGORITHM</constant> (Solo FreeBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>AF_PACKET</constant> (Solo Linux)
|
||||
</member>
|
||||
<member>
|
||||
<constant>IP_BINDANY</constant> (Solo FreeBSD/NetBSD/OpenBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>SO_BUSY_POLL</constant> (Solo Linux)
|
||||
</member>
|
||||
<member>
|
||||
<constant>UDP_SEGMENT</constant> (Solo Linux)
|
||||
</member>
|
||||
<member>
|
||||
<constant>SHUT_RD</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>SHUT_WR</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>SHUT_RDWR</constant>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.tokenizer">
|
||||
<title>Tokenizer</title>
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>T_VOID_CAST</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>T_PIPE</constant>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.standard">
|
||||
<title>Estándar</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>IMAGETYPE_SVG</constant>
|
||||
cuando se carga libxml.
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
525
appendices/migration85/deprecated.xml
Normal file
525
appendices/migration85/deprecated.xml
Normal file
@@ -0,0 +1,525 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 2def8c3cfec11fcc74f153b337301bbc06c16bc9 Maintainer: Marqitos Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<sect1 xml:id="migration85.deprecated">
|
||||
<title>Funcionalidades obsoletas</title>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.core">
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.changes-to-user-output-handler">
|
||||
<title>Cambios en el controlador de salida del usuario</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_4 -->
|
||||
|
||||
<simpara>
|
||||
Intentar generar salida (p. ej., con <function>echo</function>) dentro de
|
||||
un controlador de salida de usuario está obsoleto.
|
||||
La advertencia de obsolescencia omitirá el controlador que genera la salida para
|
||||
garantizar su visibilidad; si existen controladores de salida anidados, se seguirá
|
||||
utilizando el siguiente.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.non-canonical-cast-names">
|
||||
<title>Nombres de conversiones no canónicos</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_non-standard_cast_names -->
|
||||
|
||||
<simpara>
|
||||
Los nombres de conversiones no canónicos <literal>(boolean)</literal>,
|
||||
<literal>(integer)</literal>, <literal>(double)</literal>,
|
||||
y <literal>(binary)</literal> han quedado obsoletos,
|
||||
use <literal>(bool)</literal>, <literal>(int)</literal>,
|
||||
<literal>(float)</literal>, y <literal>(string)</literal> respectivamente.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.case-statements-with-semicolon">
|
||||
<title>Finalizar las declaraciones de caso con un punto y coma</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_semicolon_after_case_in_switch_statement -->
|
||||
|
||||
<simpara>
|
||||
Finalizar las sentencias case con un punto y coma en lugar de dos puntos,
|
||||
se considera obsoleto.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.the-backtick-operator">
|
||||
<title>El operador de ejecución</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_backticks_as_an_alias_for_shell_exec -->
|
||||
|
||||
<simpara>
|
||||
<link linkend="language.operators.execution">El operador de ejecución</link>
|
||||
como un alias para <function>shell_exec</function> ha quedado obsoleto.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.return-null-from-debuginfo">
|
||||
<title>Devolviendo null desde __debugInfo()</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_debuginfo_returning_null -->
|
||||
|
||||
<simpara>
|
||||
Devolver &null; desde
|
||||
<link linkend="language.oop5.magic.debuginfo">__debugInfo()</link>
|
||||
ha quedado obsoleto. En su lugar, devuelva un array vacío.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.return-memleaks-ini-directive">
|
||||
<title>Directiva INI report_memleaks</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_report_memleaks_ini_directive -->
|
||||
|
||||
<simpara>
|
||||
La directiva INI <link linkend="ini.report-memleaks">report_memleaks</link>
|
||||
ha quedado obsoleta.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.constant-redeclaration">
|
||||
<title>Redeclaración de constantes</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_constant_redeclaration -->
|
||||
|
||||
<simpara>
|
||||
La redeclaración de constantes está obsoleta.
|
||||
Tenga en cuenta que esto ya generó una advertencia y seguirá haciéndolo.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.closure-binding-issues">
|
||||
<title>Problemas de enlace de cierres</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_closure_binding_issues -->
|
||||
|
||||
<para>
|
||||
Los siguientes problemas de enlace de cierre, que ya emiten un
|
||||
<constant>E_WARNING</constant>, ahora están obsoletos:
|
||||
|
||||
<simplelist>
|
||||
<member>Enlazar una instancia a un cierre estático.</member>
|
||||
<member>Enlazar métodos a objetos que no son instancias de la clase
|
||||
(o subclase) en la que se define el método.</member>
|
||||
<member>Desenlazar $this de un método.</member>
|
||||
<member>Desenlazar $this de un cierre que utiliza $this.</member>
|
||||
<member>Enlazar un cierre al ámbito de una clase interna.</member>
|
||||
<member>Reenlazar el ámbito de un cierre creado a partir de una función o método.</member>
|
||||
</simplelist>
|
||||
</para>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.sleep-and-wakeup-magic-methods">
|
||||
<title>Métodos mágicos __sleep() y __wakeup()</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_sleep_and_wakeup_magic_methods -->
|
||||
<!-- RFC: https://wiki.php.net/rfc/soft-deprecate-sleep-wakeup -->
|
||||
|
||||
<simpara>
|
||||
Los métodos mágicos<link linkend="object.sleep">__sleep()</link> y
|
||||
<link linkend="object.wakeup">__wakeup()</link>
|
||||
son ligeramente-obsoletos.
|
||||
En su lugar, o al mismo tiempo si se requiere compatibilidad con PHP 7,
|
||||
se deben usar los métodos mágicos
|
||||
<link linkend="object.serialize">__serialize()</link> y
|
||||
<link linkend="object.unserialize">__unserialize()</link>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.using-null-as-an-array-offset">
|
||||
<title>Usando null como índice de un array</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_using_values_null_as_an_array_offset_and_when_calling_array_key_exists -->
|
||||
|
||||
<simpara>
|
||||
El uso de &null; como índice de un array o al llamar a <function>array_key_exists</function>
|
||||
está obsoleto. En su lugar, debe utilizarse un string vacío.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.incrementing-non-numeric-strings">
|
||||
<title>Incrementando strings no numéricos</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#enact_follow-up_phase_of_the_path_to_saner_incrementdecrement_operators_rfc -->
|
||||
|
||||
<simpara>
|
||||
El incremento de strings no numéricos está obsoleto.
|
||||
En su lugar, debe utilizarse la función <function>str_increment</function>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.register-argc-argv-directive">
|
||||
<title>Directiva INI register_argc_argv</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_register_argc_argv_ini_directive -->
|
||||
|
||||
<simpara>
|
||||
Usar <code>$_SERVER['argc']</code> y <code>$_SERVER['argv']</code>
|
||||
a partir del string de consulta para las SAPI que no son de línea de comandos ha quedado obsoleto.
|
||||
Configure <literal>register_argc_argv=0</literal> y utilice
|
||||
<varname>$_GET</varname> o <code>$_SERVER['QUERY_STRING']</code>
|
||||
para acceder a la información, tras verificar que su uso es seguro.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.curl">
|
||||
<title>cURL</title>
|
||||
|
||||
<simpara>
|
||||
La función <function>curl_close</function> ha quedado obsoleta,
|
||||
ya que los objetos <classname>CurlHandle</classname> se liberan automáticamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_curl_close -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
La función <function>curl_share_close</function> ha quedado obsoleta,
|
||||
ya que los objetos <classname>CurlShareHandle</classname> se liberan automáticamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_curl_share_close -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.date">
|
||||
<title>Fecha</title>
|
||||
|
||||
<simpara>
|
||||
Las constantes <constant>DATE_RFC7231</constant> y
|
||||
<constant>DateTimeInterface::RFC7231</constant> han quedado obsoletas.
|
||||
Esto se debe a que ignoran la zona horaria asociada y siempre utilizan GMT.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_date_rfc7231_and_datetimeinterfacerfc7231 -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.fileinfo">
|
||||
<title>FileInfo</title>
|
||||
|
||||
<simpara>
|
||||
La función <function>finfo_close</function> ha quedado obsoleta.
|
||||
Los objetos <classname>finfo</classname> se liberan automáticamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_finfo_close -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
El parámetro <parameter>$context</parameter> de la
|
||||
función <function>finfo_buffer</function> ha quedado obsoleto
|
||||
ya que se ignora.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_context_parameter_for_finfo_buffer -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.gd">
|
||||
<title>GD</title>
|
||||
|
||||
<simpara>
|
||||
La función <function>imagedestroy</function> ha quedado obsoleta,
|
||||
ya que los objetos <classname>GdImage</classname> se liberan automáticamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_imagedestroy -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.hash">
|
||||
<title>Hash</title>
|
||||
|
||||
<simpara>
|
||||
Las constantes <constant>MHASH_<replaceable>*</replaceable></constant> han
|
||||
quedado obsoletas.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
La configuración INI <link linkend="ini.intl.error-level">intl.error_level</link>
|
||||
ha quedado obsoleta.
|
||||
Se recomienda comprobar los errores manualmente o habilitar las excepciones
|
||||
mediante la configuración INI
|
||||
<link linkend="ini.intl.use-exceptions">intl.use_exceptions</link>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_intlerror_level_ini_setting -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.ldap">
|
||||
<title>LDAP</title>
|
||||
|
||||
<para>
|
||||
Se han marcado como obsoletas ciertas llamadas y constantes de Oracle Instant Client.
|
||||
|
||||
Lista de llamadas afectadas:
|
||||
<simplelist>
|
||||
<member><function>ldap_connect</function> con soporte para billetera</member>
|
||||
<member><function>ldap_connect_wallet</function></member>
|
||||
</simplelist>
|
||||
|
||||
Lista de constantes afectadas:
|
||||
<simplelist>
|
||||
<member><constant>GSLC_SSL_NO_UATH</constant></member>
|
||||
<member><constant>GSLC_SSL_ONEWAY_UATH</constant></member>
|
||||
<member><constant>GSLC_SSL_TWOWAY_UATH</constant></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_building_ext_ldap_against_oracle_ldap -->
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.mysqli">
|
||||
<title>MySQLi</title>
|
||||
|
||||
<simpara>
|
||||
La función alias <function>mysqli_execute</function> ha quedado obsoleta.
|
||||
Utilice <function>mysqli_stmt_execute</function> en su lugar.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#formally_deprecate_mysqli_execute -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.openssl">
|
||||
<title>OpenSSL</title>
|
||||
|
||||
<simpara>
|
||||
El parámetro <parameter>$key_length</parameter> de
|
||||
<function>openssl_pkey_derive</function> ha quedado obsoleto.
|
||||
Esto se debe a que se ignora o trunca la clave, lo que puede suponer
|
||||
una vulnerabilidad de seguridad.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_key_length_parameter_of_openssl_pkey_derive -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.pdo">
|
||||
<title>PDO</title>
|
||||
|
||||
<simpara>
|
||||
El esquema DSN <literal>"uri:"</literal> ha quedado obsoleto debido a problemas de seguridad relacionados con
|
||||
los DSN procedentes de URI remotos.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_pdo_s_urischeme -->
|
||||
</simpara>
|
||||
|
||||
<para>
|
||||
Las constantes específicas del controlador en la clase PDO han quedado obsoletas.
|
||||
Lista de constantes afectadas y sus reemplazos:
|
||||
|
||||
<simplelist>
|
||||
<member><constant>PDO::DBLIB_ATTR_CONNECTION_TIMEOUT</constant> => <constant>Pdo\Dblib::ATTR_CONNECTION_TIMEOUT</constant></member>
|
||||
<member><constant>PDO::DBLIB_ATTR_QUERY_TIMEOUT</constant> => <constant>Pdo\Dblib::ATTR_QUERY_TIMEOUT</constant></member>
|
||||
<member><constant>PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER</constant> => <constant>Pdo\Dblib::ATTR_STRINGIFY_UNIQUEIDENTIFIER</constant></member>
|
||||
<member><constant>PDO::DBLIB_ATTR_VERSION</constant> => <constant>Pdo\Dblib::ATTR_VERSION</constant></member>
|
||||
<member><constant>PDO::DBLIB_ATTR_TDS_VERSION</constant> => <constant>Pdo\Dblib::ATTR_TDS_VERSION</constant></member>
|
||||
<member><constant>PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS</constant> => <constant>Pdo\Dblib::ATTR_SKIP_EMPTY_ROWSETS</constant></member>
|
||||
<member><constant>PDO::DBLIB_ATTR_DATETIME_CONVERT</constant> => <constant>Pdo\Dblib::ATTR_DATETIME_CONVERT</constant></member>
|
||||
<member><constant>PDO::FB_ATTR_DATE_FORMAT</constant> => <constant>Pdo\Firebird::ATTR_DATE_FORMAT</constant></member>
|
||||
<member><constant>PDO::FB_ATTR_TIME_FORMAT</constant> => <constant>Pdo\Firebird::ATTR_TIME_FORMAT</constant></member>
|
||||
<member><constant>PDO::FB_ATTR_TIMESTAMP_FORMAT</constant> => <constant>Pdo\Firebird::ATTR_TIMESTAMP_FORMAT</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_USE_BUFFERED_QUERY</constant> => <constant>Pdo\Mysql::ATTR_USE_BUFFERED_QUERY</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_LOCAL_INFILE</constant> => <constant>Pdo\Mysql::ATTR_LOCAL_INFILE</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY</constant> => <constant>Pdo\Mysql::ATTR_LOCAL_INFILE_DIRECTORY</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_INIT_COMMAND</constant> => <constant>Pdo\Mysql::ATTR_INIT_COMMAND</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_MAX_BUFFER_SIZE</constant> => <constant>Pdo\Mysql::ATTR_MAX_BUFFER_SIZE</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_READ_DEFAULT_FILE</constant> => <constant>Pdo\Mysql::ATTR_READ_DEFAULT_FILE</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_READ_DEFAULT_GROUP</constant> => <constant>Pdo\Mysql::ATTR_READ_DEFAULT_GROUP</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_COMPRESS</constant> => <constant>Pdo\Mysql::ATTR_COMPRESS</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_DIRECT_QUERY</constant> => <constant>Pdo\Mysql::ATTR_DIRECT_QUERY</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_FOUND_ROWS</constant> => <constant>Pdo\Mysql::ATTR_FOUND_ROWS</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_IGNORE_SPACE</constant> => <constant>Pdo\Mysql::ATTR_IGNORE_SPACE</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SSL_KEY</constant> => <constant>Pdo\Mysql::ATTR_SSL_KEY</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SSL_CERT</constant> => <constant>Pdo\Mysql::ATTR_SSL_CERT</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SSL_CA</constant> => <constant>Pdo\Mysql::ATTR_SSL_CA</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SSL_CAPATH</constant> => <constant>Pdo\Mysql::ATTR_SSL_CAPATH</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SSL_CIPHER</constant> => <constant>Pdo\Mysql::ATTR_SSL_CIPHER</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT</constant> => <constant>Pdo\Mysql::ATTR_SSL_VERIFY_SERVER_CERT</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SERVER_PUBLIC_KEY</constant> => <constant>Pdo\Mysql::ATTR_SERVER_PUBLIC_KEY</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_MULTI_STATEMENTS</constant> => <constant>Pdo\Mysql::ATTR_MULTI_STATEMENTS</constant></member>
|
||||
<member><constant>PDO::ODBC_ATTR_USE_CURSOR_LIBRARY</constant> => <constant>Pdo\Odbc::ATTR_USE_CURSOR_LIBRARY</constant></member>
|
||||
<member><constant>PDO::ODBC_ATTR_ASSUME_UTF8</constant> => <constant>Pdo\Odbc::ATTR_ASSUME_UTF8</constant></member>
|
||||
<member><constant>PDO::ODBC_SQL_USE_IF_NEEDED</constant> => <constant>Pdo\Odbc::SQL_USE_IF_NEEDED</constant></member>
|
||||
<member><constant>PDO::ODBC_SQL_USE_DRIVER</constant> => <constant>Pdo\Odbc::SQL_USE_DRIVER</constant></member>
|
||||
<member><constant>PDO::ODBC_SQL_USE_ODBC</constant> => <constant>Pdo\Odbc::SQL_USE_ODBC</constant></member>
|
||||
<member><constant>PDO::PGSQL_ATTR_DISABLE_PREPARES</constant> => <constant>Pdo\Pgsql::ATTR_DISABLE_PREPARES</constant></member>
|
||||
<member><constant>PDO::SQLITE_ATTR_EXTENDED_RESULT_CODES</constant> => <constant>Pdo\Sqlite::ATTR_EXTENDED_RESULT_CODES</constant></member>
|
||||
<member><constant>PDO::SQLITE_ATTR_OPEN_FLAGS</constant> => <constant>Pdo\Sqlite::OPEN_FLAGS</constant></member>
|
||||
<member><constant>PDO::SQLITE_ATTR_READONLY_STATEMENT</constant> => <constant>Pdo\Sqlite::ATTR_READONLY_STATEMENT</constant></member>
|
||||
<member><constant>PDO::SQLITE_DETERMINISTIC</constant> => <constant>Pdo\Sqlite::DETERMINISTIC</constant></member>
|
||||
<member><constant>PDO::SQLITE_OPEN_READONLY</constant> => <constant>Pdo\Sqlite::OPEN_READONLY</constant></member>
|
||||
<member><constant>PDO::SQLITE_OPEN_READWRITE</constant> => <constant>Pdo\Sqlite::OPEN_READWRITE</constant></member>
|
||||
<member><constant>PDO::SQLITE_OPEN_CREATE</constant> => <constant>Pdo\Sqlite::OPEN_CREATE</constant></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_building_ext_ldap_against_oracle_ldap -->
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Los métodos específicos del controlador en la clase PDO han quedado obsoletos.
|
||||
Lista de métodos afectados y sus reemplazos:
|
||||
|
||||
<simplelist>
|
||||
<member><methodname>PDO::pgsqlCopyFromArray</methodname> => <methodname>Pdo\Pgsql::copyFromArray</methodname></member>
|
||||
<member><methodname>PDO::pgsqlCopyFromFile</methodname> => <methodname>Pdo\Pgsql::copyFromFile</methodname></member>
|
||||
<member><methodname>PDO::pgsqlCopyToArray</methodname> => <methodname>Pdo\Pgsql::copyToArray</methodname></member>
|
||||
<member><methodname>PDO::pgsqlCopyToFile</methodname> => <methodname>Pdo\Pgsql::copyToFile</methodname></member>
|
||||
<member><methodname>PDO::pgsqlGetNotify</methodname> => <methodname>Pdo\Pgsql::getNotify</methodname></member>
|
||||
<member><methodname>PDO::pgsqlGetPid</methodname> => <methodname>Pdo\Pgsql::getPid</methodname></member>
|
||||
<member><methodname>PDO::pgsqlLOBCreate</methodname> => <methodname>Pdo\Pgsql::lobCreate</methodname></member>
|
||||
<member><methodname>PDO::pgsqlLOBOpen</methodname> => <methodname>Pdo\Pgsql::lobOpen</methodname></member>
|
||||
<member><methodname>PDO::pgsqlLOBUnlink</methodname> => <methodname>Pdo\Pgsql::lobUnlink</methodname></member>
|
||||
<member><methodname>PDO::sqliteCreateAggregate</methodname> => <methodname>Pdo\Sqlite::createAggregate</methodname></member>
|
||||
<member><methodname>PDO::sqliteCreateCollation</methodname> => <methodname>Pdo\Sqlite::createCollation</methodname></member>
|
||||
<member><methodname>PDO::sqliteCreateFunction</methodname> => <methodname>Pdo\Sqlite::createFunction</methodname></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_driver_specific_pdo_constants_and_methods -->
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.pdo-pgsql">
|
||||
<title>PDO_PGSQL</title>
|
||||
|
||||
<para>
|
||||
Las constantes relacionadas con los estados de las transacciones han quedado obsoletas ya que esta función no está disponible con PDO:
|
||||
|
||||
<simplelist>
|
||||
<member><constant>PDO::PGSQL_TRANSACTION_IDLE</constant></member>
|
||||
<member><constant>PDO::PGSQL_TRANSACTION_ACTIVE</constant></member>
|
||||
<member><constant>PDO::PGSQL_TRANSACTION_INTRANS</constant></member>
|
||||
<member><constant>PDO::PGSQL_TRANSACTION_INERROR</constant></member>
|
||||
<member><constant>PDO::PGSQL_TRANSACTION_UNKNOWN</constant></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#extpdo_deprecations -->
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<simpara>
|
||||
Los métodos <code>setAccessible()</code> de varios objetos Reflection han quedado
|
||||
obsoletos, ya que ya no tienen efecto.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_reflectionsetaccessible -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Llamar a <methodname>ReflectionClass::getConstant</methodname> para constantes
|
||||
que no existen ha quedado obsoleto.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_reflectionclassgetconstant_for_missing_constants -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Llamar a <methodname>ReflectionProperty::getDefaultValue</methodname> para
|
||||
propiedades sin valores predeterminados ha quedado obsoleto.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_reflectionpropertygetdefaultvalue_for_properties_without_default_values -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.spl">
|
||||
<title>SPL</title>
|
||||
|
||||
<simpara>
|
||||
Anular el registro de todos los autocargadores pasando la
|
||||
función <function>spl_autoload_call</function> como argumento de devolución de llamada a
|
||||
<function>spl_autoload_unregister</function> ha quedado obsoleto.
|
||||
En su lugar, si es necesario, se debe iterar sobre el valor devuelto por
|
||||
<function>spl_autoload_functions</function> y llamar a
|
||||
<function>spl_autoload_unregister</function> en cada valor.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_passing_spl_autoload_call_to_spl_autoload_unregister -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Los métodos <methodname>SplObjectStorage::contains</methodname>,
|
||||
<methodname>SplObjectStorage::attach</methodname> y
|
||||
<methodname>SplObjectStorage::detach</methodname> han quedado obsoletos
|
||||
y se han sustituido por <methodname>SplObjectStorage::offsetExists</methodname>,
|
||||
<methodname>SplObjectStorage::offsetSet</methodname> y
|
||||
<methodname>SplObjectStorage::offsetUnset</methodname>, respectivamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_splobjectstoragecontains_splobjectstorageattach_and_splobjectstoragedetach -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
El uso de <classname>ArrayObject</classname> y
|
||||
<classname>ArrayIterator</classname> con objetos ha quedado obsoleto.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_arrayobject_and_arrayiterator_with_objects -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.standard">
|
||||
<title>Estándar</title>
|
||||
|
||||
<simpara>
|
||||
La función alias <function>socket_set_timeout</function> ha quedado obsoleta.
|
||||
Utilice <function>stream_set_timeout</function> en su lugar.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#formally_deprecate_socket_set_timeout -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Pasar &null; a <function>readdir</function>,
|
||||
<function>rewinddir</function> y <function>closedir</function>
|
||||
para usar el último directorio abierto ha quedado obsoleto.
|
||||
En su lugar, proporcione explícitamente el último directorio abierto.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_passing_null_to_readdir_rewinddir_and_closedir -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Pasar enteros fuera del intervalo <literal>[0, 255]</literal> a <function>chr</function>
|
||||
está obsoleto.
|
||||
Esto se debe a que un byte solo puede contener un valor dentro de este intervalo.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_passing_integers_outside_the_interval_0_255_to_chr -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Pasar un string que no sea un solo byte a <function>ord</function>
|
||||
ahora está obsoleto, esto es indicativo de un error.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_passing_string_which_are_not_one_byte_long_to_ord -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
La variable predefinida localmente
|
||||
<link linkend="reserved.variables.httpresponseheader">$http_response_header</link>
|
||||
está obsoleta. En su lugar, se debe llamar a
|
||||
la función <function>http_get_last_response_headers</function>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_http_response_header_predefined_variable -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.xml">
|
||||
<title>XML</title>
|
||||
|
||||
<simpara>
|
||||
La función <function>xml_parser_free</function> ha quedado obsoleta,
|
||||
ya que los objetos <classname>XMLParser</classname> se liberan automáticamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_xml_parser_free -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
589
appendices/migration85/incompatible.xml
Normal file
589
appendices/migration85/incompatible.xml
Normal file
@@ -0,0 +1,589 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Marqitos Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<sect1 xml:id="migration85.incompatible" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Cambios incompatibles con versiones anteriores</title>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.core">
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.array-callable-alias">
|
||||
<title>Nombres de alias <literal>"array"</literal> y <literal>"callable"</literal></title>
|
||||
|
||||
<simpara>
|
||||
Ya no es posible utilizar <literal>"array"</literal>
|
||||
y <literal>"callable"</literal> como nombres de alias de clase
|
||||
en <function>class_alias</function>
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.loosely-comparing-object">
|
||||
<title>Comparación imprecisa de objetos incomparables</title>
|
||||
|
||||
<simpara>
|
||||
Anteriormente, la comparación imprecisa de objetos no comparables (p. ej., enumeraciones,
|
||||
<classname>CurlHandle</classname> y otras clases internas) con valores booleanos
|
||||
era inconsistente. Si se comparaba con un literal booleano
|
||||
<code>$object == true</code>, se comportaba igual que
|
||||
<code>(bool)$object</code>. Si se comparaba con un valor estáticamente desconocido
|
||||
<code>$object == $true</code>, siempre devolvía &false;.
|
||||
Este comportamiento se unificó para que siempre se ajustara al de
|
||||
<code>(bool)$object</code>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.gc-collect-cycles">
|
||||
<title>Valor de retorno de gc_collect_cycles</title>
|
||||
|
||||
<simpara>
|
||||
El valor de retorno de <function>gc_collect_cycles</function> ya no incluye
|
||||
strings y recursos que se recopilaron indirectamente a través de ciclos.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.substitute-final-subclasses">
|
||||
<title>Sustituir la palabra clave static en la subclase final</title>
|
||||
|
||||
<simpara>
|
||||
Ahora está permitido sustituir <type>static</type> por <type>self</type> o el nombre de clase concreto
|
||||
en las subclases finales.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.tick-handlers">
|
||||
<title>Controladores de ticks</title>
|
||||
|
||||
<simpara>
|
||||
Los controladores de ticks ahora se desactivan después de todas las funciones de apagado,
|
||||
los destructores se hayan ejecutado, y se hayan limpiado los controladores de salida.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.trait-binding">
|
||||
<title>Enlace de rasgos</title>
|
||||
|
||||
<simpara>
|
||||
Ahora, los rasgos se vinculan antes que la clase padre. Este es un cambio de comportamiento
|
||||
sutil, pero debería ajustarse mejor a las expectativas de los usuarios.
|
||||
<!-- https://github.com/php/php-src/pull/15878 -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.errors-compilation-and-linking">
|
||||
<title>Errores durante la compilación y el enlace de clases</title>
|
||||
|
||||
<simpara>
|
||||
Los errores que se producen durante la compilación y el enlazado de clases ahora se procesan siempre
|
||||
después de la compilación o el enlazado. Los errores fatales que se producen durante
|
||||
la compilación o el enlazado de clases provocan que cualquier error retrasado se procese
|
||||
inmediatamente, sin llamar a los controladores de errores definidos por el usuario.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.exception-by-userdefined-handler">
|
||||
<title>Excepciones generadas por el controlador de errores definido por el usuario</title>
|
||||
|
||||
<simpara>
|
||||
Las excepciones generadas por los controladores de errores definidos por el usuario al manejar errores de
|
||||
enlace de clases ya no se convierten en errores fatales y no impiden el enlace.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.attribute-during-compilation">
|
||||
<title>Error al aplicar el atributo durante la compilación</title>
|
||||
|
||||
<simpara>
|
||||
Aplicar <code>#[\Attribute]</code> a una clase abstracta, enumeración, interfaz o rasgo
|
||||
provoca un error durante la compilación. Anteriormente, se podía agregar el atributo,
|
||||
pero al llamar a <methodname>ReflectionAttribute::newInstance</methodname>
|
||||
se producía un error.
|
||||
El error se puede retrasar desde la compilación hasta el tiempo de ejecución mediante el nuevo
|
||||
atributo <code>#[\DelayedTargetValidation]</code>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.disable-ini-setting">
|
||||
<title>Configuración INI disable_classes</title>
|
||||
|
||||
<simpara>
|
||||
Se ha eliminado la configuración INI <link linkend="ini.disable-classes">disable_classes</link>
|
||||
ya que provoca que se rompan varias suposiciones del motor.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#remove_disable_classes_ini_setting -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.destruct-non-array-values">
|
||||
<title>Destrucción de valores que no son arrays</title>
|
||||
|
||||
<simpara>
|
||||
La destrucción de valores que no son array (distintos de &null;) utilizando <literal>[]</literal> o <function>list</function> ahora
|
||||
emite una advertencia.
|
||||
<!-- RFC: https://wiki.php.net/rfc/warnings-php-8-5#destructuring_non-array_values -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.warning-related-to-cast">
|
||||
<title>Advertencias relacionadas con conversiones</title>
|
||||
|
||||
<simpara>
|
||||
Ahora se emite una advertencia al convertir números de punto flotante (o cadenas que parecen ser
|
||||
de punto flotante) a enteros si no se pueden representar como tales. Esto afecta
|
||||
tanto a las conversiones explícitas como a las implícitas de enteros.
|
||||
<!-- RFC: https://wiki.php.net/rfc/warnings-php-8-5#casting_out_of_range_floats_to_int -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ahora se emite una advertencia al convertir NAN a otros tipos.
|
||||
<!-- RFC: https://wiki.php.net/rfc/warnings-php-8-5#coercing_nan_to_other_types -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.bzip2">
|
||||
<title>Bzip2</title>
|
||||
|
||||
<simpara>
|
||||
<function>bzcompress</function> ahora lanza un <classname>ValueError</classname>
|
||||
cuando <parameter>$block_size</parameter> no está entre 1 y 9.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>bzcompress</function> ahora lanza un <classname>ValueError</classname>
|
||||
cuando <parameter>$work_factor</parameter> no está entre 0 y 250.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.dom">
|
||||
<title>DOM</title>
|
||||
|
||||
<simpara>
|
||||
Clonar un <classname>DOMNamedNodeMap</classname>,
|
||||
<classname>DOMNodeList</classname>, <classname>Dom\NamedNodeMap</classname>,
|
||||
<classname>Dom\NodeList</classname>, <classname>Dom\HTMLCollection</classname>,
|
||||
o <classname>Dom\DtdNamedNodeMap</classname> ahora falla.
|
||||
Dado que nunca se generó un objeto funcional, no se espera ningún impacto.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.fileinfo">
|
||||
<title>FileInfo</title>
|
||||
|
||||
<simpara>
|
||||
<function>finfo_file</function> y <methodname>finfo::file</methodname>
|
||||
ahora lanzan un <exceptionname>ValueError</exceptionname> en lugar de un
|
||||
<exceptionname>TypeError</exceptionname> cuando <parameter>$filename</parameter>
|
||||
contiene bytes nulos.
|
||||
Esto alinea el tipo de error que se produce para que sea coherente con el resto
|
||||
del lenguaje.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
La extensión ahora requiere al menos ICU 57.1.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<methodname>IntlDateFormatter::setTimeZone</methodname>/<function>datefmt_set_timezone</function>
|
||||
ahora lanza una <exceptionname>IntlException</exceptionname> en clases no
|
||||
inicializadas/fallos de clonación.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Todos los métodos <classname>Locale</classname> ahora lanzan un
|
||||
<exceptionname>ValueError</exceptionname> cuando el argumento locale contiene bytes nulos.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
El comportamiento de <constant>Collator::SORT_REGULAR</constant> con respecto al
|
||||
manejo de strings numéricas ahora está alineado con el comportamiento de
|
||||
<constant>SORT_REGULAR</constant> en ext/standard.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.ldap">
|
||||
<title>LDAP</title>
|
||||
|
||||
<simpara>
|
||||
<function>ldap_get_option</function> y <function>ldap_set_option</function>
|
||||
ahora lanzan un <exceptionname>ValueError</exceptionname> al pasar una opción no válida.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.mbstring">
|
||||
<title>MBString</title>
|
||||
|
||||
<simpara>
|
||||
Las tablas de datos Unicode se han actualizado a Unicode 17.0.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.mysqli">
|
||||
<title>MySQLi</title>
|
||||
|
||||
<simpara>
|
||||
Ahora ya no es posible llamar al constructor mysqli en un objeto ya construido
|
||||
y lanza un <exceptionname>Error</exceptionname>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.odbc">
|
||||
<title>ODBC</title>
|
||||
|
||||
<simpara>
|
||||
ODBC ahora presupone que está disponible al menos la funcionalidad de ODBC 3.5.
|
||||
Se han eliminado la definición de ODBCVER y las opciones del sistema de compilación para controlarla.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
ODBC ya no incluye opciones de compilación para controladores específicos (excepto
|
||||
DB2) y elimina las excepciones para dichos controladores. Se recomienda
|
||||
encarecidamente usar un administrador de controladores como iODBC o unixODBC en sistemas que no sean Windows.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.opcache">
|
||||
<title>Opcache</title>
|
||||
|
||||
<simpara>
|
||||
La extensión Opcache ahora viene integrada en el binario de PHP y siempre
|
||||
se carga.
|
||||
Las directivas INI <link linkend="ini.opcache.enable">opcache.enable</link>
|
||||
y <link linkend="ini.opcache.enable-cli">opcache.enable_cli</link> siguen siendo
|
||||
válidas.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Se han eliminado las opciones de configuración <option role="configure">--enable-opcache</option>/<option role="configure">--disable-opcache</option>
|
||||
y la compilación ya no produce objetos <filename>opcache.so</filename>
|
||||
ni <filename>php_opcache.dll</filename>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
El uso de las directivas INI <literal>zend_extension=opcache.so</literal> o
|
||||
<literal>zend_extension=php_opcache.dll</literal>
|
||||
generará una advertencia.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pcntl">
|
||||
<title>PCNTL</title>
|
||||
|
||||
<simpara>
|
||||
<function>pcntl_exec</function> ahora lanza <exceptionname>ValueError</exceptionname>
|
||||
cuando las entradas del parámetro <parameter>$args</parameter> contienen bytes nulos.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>pcntl_exec</function> ahora lanza <exceptionname>ValueError</exceptionname>
|
||||
cuando las entradas o claves del parámetro <parameter>$env_vars</parameter>
|
||||
contienen bytes nulos.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pcre">
|
||||
<title>PCRE</title>
|
||||
|
||||
<simpara>
|
||||
La extensión se compila sin la opción de compilación
|
||||
PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK, que está semi-obsoleta.
|
||||
<!-- https://github.com/PCRE2Project/pcre2/issues/736#issuecomment-2754024651 -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pdo">
|
||||
<title>PDO</title>
|
||||
|
||||
<simpara>
|
||||
Los argumentos del constructor definidos junto con
|
||||
<constant>PDO::FETCH_CLASS</constant> ahora siguen la semántica habitual de CUFA
|
||||
(<function>call_user_func_array</function>).
|
||||
Esto significa que las claves de tipo cadena se comportarán como argumentos con nombre.
|
||||
Además, se ha eliminado el ajuste automático de los argumentos por valor pasados a un
|
||||
parámetro por referencia, y ahora se emite la advertencia habitual <constant>E_WARNING</constant>
|
||||
sobre este problema.
|
||||
Para pasar una variable por referencia a un argumento del constructor, utilice la asignación general
|
||||
de referencia a un valor de array: <code>$ctor_args = [&$valByRef]</code>
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Intentar llamar a <methodname>PDOStatement::setFetchMode</methodname> durante
|
||||
una llamada a <methodname>PDO::fetch</methodname>,
|
||||
<methodname>PDO::fetchObject</methodname>,
|
||||
<methodname>PDO::fetchAll</methodname>, por ejemplo, utilizando trucos como
|
||||
pasar el objeto de declaración como argumento de constructor al buscar en un
|
||||
objeto, ahora lanzará un <exceptionname>Error</exceptionname>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Los valores de las constantes <constant>PDO::FETCH_GROUP</constant>,
|
||||
<constant>PDO::FETCH_UNIQUE</constant>,
|
||||
<constant>PDO::FETCH_CLASSTYPE</constant>,
|
||||
<constant>PDO::FETCH_PROPS_LATE</constant>, y
|
||||
<constant>PDO::FETCH_SERIALIZE</constant> ha cambiado.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ahora se lanza un <exceptionname>ValueError</exceptionname> si se usa
|
||||
<constant>PDO::FETCH_PROPS_LATE</constant> con un modo de obtención
|
||||
diferente de <constant>PDO::FETCH_CLASS</constant>, de forma coherente
|
||||
con otras flags de obtención.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ahora se lanza un <exceptionname>ValueError</exceptionname> si se usa
|
||||
<constant>PDO::FETCH_INTO</constant> como modo de obtención en
|
||||
<methodname>PDO::fetchAll</methodname>,
|
||||
de forma similar a <constant>PDO::FETCH_LAZY</constant>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pdo-firebird">
|
||||
<title>PDO_FIREBIRD</title>
|
||||
|
||||
<simpara>
|
||||
Ahora se produce un <exceptionname>ValueError</exceptionname> al intentar establecer un nombre de cursor
|
||||
demasiado largo en un <classname>PDOStatement</classname> resultante del
|
||||
controlador Firebird.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pdo-sqlite">
|
||||
<title>PDO_SQLITE</title>
|
||||
|
||||
<simpara>
|
||||
SQLite <methodname>PDO::quote</methodname> ahora lanzará una excepción
|
||||
o emitirá una advertencia, dependiendo del modo de error, si la cadena contiene
|
||||
un byte nulo.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<methodname>PDO::sqliteCreateCollation</methodname> ahora lanzará una
|
||||
excepción si la devolución de llamada tiene un tipo de retorno incorrecto, lo que lo hace más
|
||||
acorde con el comportamiento de <methodname>Pdo\Sqlite::createCollation</methodname>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.posix">
|
||||
<title>POSIX</title>
|
||||
|
||||
<simpara>
|
||||
<function>posix_kill</function> ahora lanza una
|
||||
<exceptionname>ValueError</exceptionname> cuando el argumento process_id es
|
||||
menor o mayor que lo que admite la plataforma (entero con signo o
|
||||
rango largo), la función <function>posix_setpgid</function> ahora lanza una
|
||||
<exceptionname>ValueError</exceptionname> cuando process_id o
|
||||
process_group_id es menor que cero o mayor que lo que admite
|
||||
la plataforma.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>posix_setrlimit</function> ahora lanza un
|
||||
<exceptionname>ValueError</exceptionname> cuando los argumentos hard_limit o
|
||||
soft_limit son menores que -1 o si soft_limit es mayor que
|
||||
hard_limit.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<simpara>
|
||||
<methodname>ReflectionAttribute::newInstance</methodname> ahora puede lanzar
|
||||
errores para atributos internos si el atributo se aplicó en un destino
|
||||
no válido y el error se retrasó del tiempo de compilación al tiempo de ejecución a través
|
||||
del atributo #[\DelayedTargetValidation].
|
||||
<!-- RFC: https://wiki.php.net/rfc/delayedtargetvalidation_attribute -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.session">
|
||||
<title>Sesión</title>
|
||||
|
||||
<simpara>
|
||||
Intentar escribir datos de sesión donde <varname>$_SESSION</varname> tiene una clave
|
||||
que contiene el carácter de barra vertical (<literal>|</literal>) ahora emitirá una advertencia
|
||||
en lugar de fallar silenciosamente.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>session_start</function> es más estricta con respecto al argumento
|
||||
<parameter>options</parameter>. Ahora lanza una <exceptionname>ValueError</exceptionname> si
|
||||
el array no es un mapa hash, o una <exceptionname>TypeError</exceptionname>
|
||||
si el valor de read_and_close no es de un tipo válido compatible con int.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.simplexml">
|
||||
<title>SimpleXML</title>
|
||||
|
||||
<simpara>
|
||||
Pasar una expresión XPath que devuelva algo distinto de un nodo establecido
|
||||
en <methodname>SimpleXMLElement::xpath</methodname> ahora emitirá una advertencia
|
||||
y devolverá &false;, en lugar de fallar silenciosamente y devolver un array vacío.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.snmp">
|
||||
<title>SNMP</title>
|
||||
|
||||
<simpara>
|
||||
<function>snmpget</function>,
|
||||
<function>snmpset</function>,
|
||||
<function>snmp2_get</function>,
|
||||
<function>snmp2_set</function>,
|
||||
<function>snmp3_get</function>,
|
||||
<function>snmp3_set</function>
|
||||
y <methodname>SNMP::__construct</methodname> ahora lanzará una
|
||||
<exceptionname>ValueError</exceptionname> cuando el nombre de host
|
||||
es demasiado largo, contiene algún byte nulo, o si el puerto proporcionado
|
||||
es negativo o mayor que 65535, los valores de tiempo de espera y reintentos
|
||||
son inferiores a -1 o demasiado grandes.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.soap">
|
||||
<title>SOAP</title>
|
||||
|
||||
<simpara>
|
||||
<methodname>SoapClient::__doRequest</methodname> ahora acepta un nuevo
|
||||
parámetro opcional <parameter>$uriParserClass</parameter> que acepta
|
||||
argumentos de tipo string o &null;.
|
||||
&null; representa el método original basado en
|
||||
(<function>parse_url</function>), mientras que los nuevos backends se utilizarán al pasar
|
||||
<classname>Uri\Rfc3986\Uri</classname> o <classname>Uri\WhatWg\Url</classname>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/url_parsing_api#plugability -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.sockets">
|
||||
<title>Sockets</title>
|
||||
|
||||
<simpara>
|
||||
<function>socket_create_listen</function>,
|
||||
<function>socket_bind</function> y <function>socket_sendto</function>
|
||||
ahora lanzan un <exceptionname>ValueError</exceptionname> si el puerto es menor
|
||||
que 0 o mayor que 65535, y también si alguna de las entradas del array de sugerencias está
|
||||
indexada numéricamente.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>socket_addrinfo_lookup</function> ahora lanza un
|
||||
<exceptionname>TypeError</exceptionname> si alguno de los valores de las sugerencias
|
||||
no se puede convertir a int y puede lanzar un <exceptionname>ValueError</exceptionname> si
|
||||
alguno de estos valores se desborda.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>socket_set_option</function> con las opciones
|
||||
<constant>MCAST_LEAVE_GROUP</constant>/<constant>MCAST_LEAVE_SOURCE_GROUP</constant>
|
||||
ahora lanzan una excepción si el valor no es un objeto o array válido.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>socket_set_option</function> con contexto multicast ahora lanza un
|
||||
<exceptionname>ValueError</exceptionname> cuando el socket creado no es de
|
||||
la familia <constant>AF_INET</constant>/<constant>AF_INET6</constant>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.spl">
|
||||
<title>SPL</title>
|
||||
|
||||
<simpara>
|
||||
<classname>ArrayObject</classname> ya no acepta enumeraciones, ya que modificar las
|
||||
propiedades <property>$name</property> o <property>$value</property> puede romper
|
||||
las suposiciones del motor.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
El parámetro <parameter>$length</parameter> de
|
||||
<methodname>SplFileObject::fwrite</methodname> ahora admite valores nulos.
|
||||
El valor predeterminado cambió de <literal>0</literal> a &null;.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.standard">
|
||||
<title>Estándar</title>
|
||||
|
||||
<simpara>
|
||||
El uso de una función de la familia printf con un formateador que no especificó
|
||||
previamente la precisión incorrectamente restablece la precisión en lugar de tratarla
|
||||
como una precisión de 0.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.tidy">
|
||||
<title>Tidy</title>
|
||||
|
||||
<simpara>
|
||||
<methodname>tidy::__construct</methodname>,
|
||||
<methodname>tidy::parseFile</methodname>,
|
||||
<methodname>tidy::parseString</methodname> ahora lanza un
|
||||
<exceptionname>ValueError</exceptionname> si la configuración contiene un
|
||||
valor no válido o intenta establecer una entrada interna de solo lectura,
|
||||
y un <exceptionname>TypeError</exceptionname> si una clave de configuración no es
|
||||
un string.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
69
appendices/migration85/new-classes.xml
Normal file
69
appendices/migration85/new-classes.xml
Normal file
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Marqitos Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<sect1 xml:id="migration85.new-classes" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Nuevas clases e interfaces</title>
|
||||
|
||||
<sect2 xml:id="migration85.new-classes.core">
|
||||
<title>Núcleo</title>
|
||||
<simplelist>
|
||||
<member><classname>NoDiscard</classname></member>
|
||||
<member><classname>DelayedTargetValidation</classname></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/marking_return_value_as_important -->
|
||||
<!-- RFC: https://wiki.php.net/rfc/delayedtargetvalidation_attribute -->
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-classes.curl">
|
||||
<title>Curl</title>
|
||||
<simplelist>
|
||||
<member><classname>CurlSharePersistentHandle</classname></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/curl_share_persistence_improvement -->
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-classes.filter">
|
||||
<title>Filter</title>
|
||||
<simplelist>
|
||||
<member><classname>Filter\FilterException</classname></member>
|
||||
<member><classname>Filter\FilterFailedException</classname></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/filter_throw_on_failure -->
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-classes.uri">
|
||||
<title>URI</title>
|
||||
<simplelist>
|
||||
<member><classname>Uri\UriException</classname></member>
|
||||
<member><classname>Uri\InvalidUriException</classname></member>
|
||||
<member><classname>Uri\UriComparisonMode</classname></member>
|
||||
<member><classname>Uri\Rfc3986\Uri</classname></member>
|
||||
<member><classname>Uri\WhatWg\InvalidUrlException</classname></member>
|
||||
<member><classname>Uri\WhatWg\UrlValidationErrorType</classname></member>
|
||||
<member><classname>Uri\WhatWg\UrlValidationError</classname></member>
|
||||
<member><classname>Uri\WhatWg\Url</classname></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/url_parsing_api -->
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
499
appendices/migration85/new-features.xml
Normal file
499
appendices/migration85/new-features.xml
Normal file
@@ -0,0 +1,499 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Marqitos Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<sect1 xml:id="migration85.new-features" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Nuevas características</title>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.core">
|
||||
<title>Núcleo de PHP</title>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.pipe-operator">
|
||||
<title>Operador Pipe</title>
|
||||
|
||||
<simpara>
|
||||
Añadido el <link linkend="language.operators.functional">Operador
|
||||
pipe (<literal>|></literal>)</link>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/pipe-operator-v3 -->
|
||||
</simpara>
|
||||
|
||||
<informalexample>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$result = "Hola Mundo" |> strlen(...);
|
||||
print $result . PHP_EOL; // imprime "10"
|
||||
]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.closures-in-constexpr">
|
||||
<title>Cierres en expresiones constantes</title>
|
||||
|
||||
<para>
|
||||
Añadido soporte para <link linkend="class.closure">Closures</link> y
|
||||
<link linkend="functions.first_class_callable_syntax">callable de primera clase</link>
|
||||
en expresiones constantes. Esto incluye:
|
||||
|
||||
<simplelist>
|
||||
<member>Parámetros de atributos.</member>
|
||||
<member>Valores predeterminados de propiedades y parámetros.</member>
|
||||
<member>Constantes y constantes de clase.</member>
|
||||
</simplelist>
|
||||
|
||||
<!-- RFC: https://wiki.php.net/rfc/closures_in_const_expr -->
|
||||
<!-- RFC: https://wiki.php.net/rfc/fcc_in_const_expr -->
|
||||
</para>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.nodiscard-attribute">
|
||||
<title>Atributo #[\NoDiscard]</title>
|
||||
|
||||
<simpara>
|
||||
Añadido el atributo <classname>NoDiscard</classname> para indicar que el
|
||||
valor de retorno de una función es importante y debe ser consumido.
|
||||
<!-- RFC: https://wiki.php.net/rfc/marking_return_value_as_important -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Además, se añadió la conversión <literal>(void)</literal> para indicar que no usar un valor es intencional.
|
||||
La conversión <literal>(void)</literal> no afecta la ejecución del programa por sí sola, pero
|
||||
puede usarse para suprimir las advertencias emitidas por <code>#[\NoDiscard]</code> y posiblemente
|
||||
también los diagnósticos emitidos por IDE externos o herramientas de análisis estático.
|
||||
<!-- RFC: https://wiki.php.net/rfc/marking_return_value_as_important -->
|
||||
</simpara>
|
||||
|
||||
<informalexample>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
|
||||
#[\NoDiscard]
|
||||
function concat(string $a, string $b): string {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
// Advertencia: El valor de retorno de la función concat() debe usarse o
|
||||
// ignorarse intencionalmente convirtiéndolo a (void) en xxx.php
|
||||
concat("a", "b");
|
||||
|
||||
// No hay advertencia, porque el valor de retorno es consumido por la asignación.
|
||||
$results = concat("a", "b");
|
||||
|
||||
// No hay advertencia, porque se utiliza la conversión (void).
|
||||
(void)concat("a", "b");
|
||||
]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.attributes-on-constants">
|
||||
<title>Atributos en constantes</title>
|
||||
|
||||
<simpara>
|
||||
Añadido soporte para atributos en constantes no de clase en tiempo de compilación
|
||||
(p. ej. <code>const MY_CONST = 1;</code> en lugar de
|
||||
<code>define('MY_CONST', 1);</code>).
|
||||
<!-- RFC: https://wiki.php.net/rfc/attributes-on-constants -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
El atributo <classname>Deprecated</classname> ahora se puede usar en constantes.
|
||||
<!-- RFC: https://wiki.php.net/rfc/attributes-on-constants -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.delayedtargetvalidation-attribute">
|
||||
<title>Atributo <code>#[\DelayedTargetValidation]</code></title>
|
||||
|
||||
<simpara>
|
||||
El nuevo atributo <classname>DelayedTargetValidation</classname> permite
|
||||
suprimir los errores de compilación de los atributos principales (o de extensión) que se
|
||||
utilizan en destinos no válidos. Estos errores se notifican en tiempo de ejecución
|
||||
cuando se llama a <methodname>ReflectionAttribute::newInstance</methodname>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/delayedtargetvalidation_attribute -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.override-for-properties">
|
||||
<title><code>#[\Override]</code> para propiedades</title>
|
||||
|
||||
<simpara>
|
||||
El atributo <classname>Override</classname> ahora se puede aplicar a las propiedades.
|
||||
<!-- RFC: https://wiki.php.net/rfc/override_properties -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.static-aviz">
|
||||
<title>Visibilidad asimétrica estática</title>
|
||||
|
||||
<simpara>
|
||||
Añadida compatibilidad con <link linkend="language.oop5.visibility-members-aviz">
|
||||
visibilidad asimétrica</link> para propiedades estáticas.
|
||||
<!-- RFC: https://wiki.php.net/rfc/static-aviz -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.backtraces-for-fatal-errors">
|
||||
<title>Seguimiento de pila para errores fatales</title>
|
||||
|
||||
<simpara>
|
||||
Los errores fatales (como exceder el tiempo máximo de ejecución) ahora incluyen
|
||||
un seguimiento de pila.
|
||||
<!-- RFC: https://wiki.php.net/rfc/error_backtraces_v2 -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.final-property-promotion">
|
||||
<title>Promoción del constructor para propiedades finales</title>
|
||||
|
||||
<simpara>
|
||||
La <link linkend="language.oop5.decon.constructor.promotion">promoción de propiedades
|
||||
en el constructor ahora</link> se puede utilizar para propiedades finales.
|
||||
<!-- RFC: https://wiki.php.net/rfc/final_promotion -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.casts-in-constexpr">
|
||||
<title>Conversión en expresiones constantes</title>
|
||||
|
||||
<simpara>
|
||||
Añadida compatibilidad para conversiones en expresiones constantes.
|
||||
</simpara>
|
||||
|
||||
<informalexample>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
const T1 = (int) 0.3; // Anteriormente: "Fatal error: Constant expression contains invalid operations"
|
||||
print T1 . PHP_EOL; // Imprime "0"
|
||||
]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.clone-function">
|
||||
<title>Función de clonación</title>
|
||||
|
||||
<simpara>
|
||||
La <link linkend="language.oop5.cloning">construcción del lenguaje de clonación</link>
|
||||
ahora es una función y admite la reasignación de propiedades (de solo lectura) durante
|
||||
la clonación a través del nuevo parámetro <property>$withProperties</property>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/clone_with_v2 -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.curl">
|
||||
<title>cURL</title>
|
||||
|
||||
<simpara>
|
||||
Añadido soporte para
|
||||
<link linkend="class.curlsharepersistenthandle">manejadores compartidos</link>
|
||||
que se mantienen a través de múltiples solicitudes PHP, permitiendo de forma segura
|
||||
una reutilización más eficaz de las conexiones.
|
||||
<!-- RFC: https://wiki.php.net/rfc/curl_share_persistence_improvement -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadido soporte para <constant>CURLINFO_USED_PROXY</constant> (libcurl >= 8.7.0),
|
||||
<constant>CURLINFO_HTTPAUTH_USED</constant>,
|
||||
y <constant>CURLINFO_PROXYAUTH_USED</constant> (libcurl >= 8.12.0)
|
||||
a la función <function>curl_getinfo</function>.
|
||||
Cuando <function>curl_getinfo</function> devuelve un array, la misma información
|
||||
está disponible como claves <literal>"used_proxy"</literal>,
|
||||
<literal>"httpauth_used"</literal> y
|
||||
<literal>"proxyauth_used"</literal>.
|
||||
<constant>CURLINFO_USED_PROXY</constant> se establece en cero si no se utilizó ningún proxy en la
|
||||
transferencia anterior o en un valor distinto de cero si se utilizó un proxy.
|
||||
<constant>CURLINFO_HTTPAUTH_USED</constant> y
|
||||
<constant>CURLINFO_PROXYAUTH_USED</constant> obtienen máscaras de bits
|
||||
que indican los métodos de autenticación HTTP y proxy que se
|
||||
utilizaron en la solicitud anterior.
|
||||
Véanse las constantes <constant>CURLAUTH_<replaceable>*</replaceable></constant> para
|
||||
valores posibles.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadida la opción Curl <constant>CURLOPT_INFILESIZE_LARGE</constant>, que sustituye
|
||||
de forma segura a <constant>CURLOPT_INFILESIZE</constant>. En algunos sistemas,
|
||||
<constant>CURLOPT_INFILESIZE</constant> solo acepta un entero con signo de 32 bits como
|
||||
tamaño de archivo (2,0 GiB), incluso en sistemas de 64 bits.
|
||||
<constant>CURLOPT_INFILESIZE_LARGE</constant> acepta el valor entero más grande
|
||||
que el sistema puede manejar.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadidos los valores <constant>CURLFOLLOW_OBEYCODE</constant>,
|
||||
<constant>CURLFOLLOW_FIRSTONLY</constant> y <constant>CURLFOLLOW_ALL</constant>
|
||||
para la opción <constant>CURLOPT_FOLLOWLOCATION</constant>
|
||||
<function>curl_setopt</function>.
|
||||
<constant>CURLFOLLOW_OBEYCODE</constant> para seguir más estrictamente en lo que respecta a
|
||||
las redirecciones si están permitidas.
|
||||
<constant>CURLFOLLOW_FIRSTONLY</constant> para seguir solo la primera redirección, por lo que
|
||||
si hay alguna redirección posterior, no irá más allá.
|
||||
<constant>CURLFOLLOW_ALL</constant> es equivalente a establecer
|
||||
<constant>CURLOPT_FOLLOWLOCATION</constant> a true.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadida compatibilidad con <constant>CURLINFO_CONN_ID</constant> (libcurl >= 8.2.0)
|
||||
a la función <function>curl_getinfo</function>. Esta constante permite recuperar
|
||||
el ID único de la conexión utilizada en una transferencia cURL. Resulta especialmente
|
||||
útil cuando se requiere lógica de reutilización o agrupación de conexiones en
|
||||
aplicaciones PHP. Cuando <function>curl_getinfo</function> devuelve un array,
|
||||
este valor está disponible como la clave <literal>"conn_id"</literal>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadida compatibilidad con <constant>CURLINFO_QUEUE_TIME_T</constant> (libcurl >= 8.6.0)
|
||||
a la función <function>curl_getinfo</function>. Esta constante permite
|
||||
obtener el tiempo (en microsegundos) que la solicitud permaneció en la cola de conexiones
|
||||
de libcurl antes de ser enviada.
|
||||
Este valor también se puede obtener pasando
|
||||
<constant>CURLINFO_QUEUE_TIME_T</constant> al parámetro <parameter>option</parameter>
|
||||
de la función <function>curl_getinfo</function>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadido soporte para <constant>CURLOPT_SSL_SIGNATURE_ALGORITHMS</constant> para
|
||||
especificar los algoritmos de firma que se utilizarán para TLS.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.dom">
|
||||
<title>DOM</title>
|
||||
|
||||
<simpara>
|
||||
Añadida <property>Dom\Element::$outerHTML</property>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadida la propiedad <property>$children</property> a
|
||||
las implementaciones de <interfacename>Dom\ParentNode</interfacename>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.exif">
|
||||
<title>EXIF</title>
|
||||
|
||||
<simpara>
|
||||
Añadida compatibilidad con las etiquetas Exif <literal>OffsetTime*</literal>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadida compatibilidad con HEIF/HEIC.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.filter">
|
||||
<title>Filter</title>
|
||||
|
||||
<simpara>
|
||||
Añadida la nueva flag <constant>FILTER_THROW_ON_FAILURE</constant>, que se puede
|
||||
pasar a las funciones de filtro y fuerza el lanzamiento de una excepción
|
||||
cuando falla la validación.
|
||||
Esta nueva bandera no se puede combinar con
|
||||
<constant>FILTER_NULL_ON_FAILURE</constant>; si se intenta, se lanzará
|
||||
<exceptionname>ValueError</exceptionname>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/filter_throw_on_failure -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
Añadidas las constantes de clase <constant>NumberFormatter::CURRENCY_ISO</constant>,
|
||||
<constant>NumberFormatter::CURRENCY_PLURAL</constant>,
|
||||
<constant>NumberFormatter::CASH_CURRENCY</constant>
|
||||
y <constant>NumberFormatter::CURRENCY_STANDARD</constant>
|
||||
para varios formatos de números relacionados con monedas.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadidos <methodname>Locale::addLikelySubtags</methodname> y
|
||||
<methodname>Locale::minimizeSubtags</methodname> para manejar las etiquetas probables
|
||||
en una configuración regional determinada.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadida la clase <classname>IntlListFormatter</classname> para formatear, ordenar
|
||||
y puntuar una lista de elementos con una configuración regional determinada,
|
||||
los operandos <constant>IntlListFormatter::TYPE_AND</constant>,
|
||||
<constant>IntlListFormatter::TYPE_OR</constant>,
|
||||
<constant>IntlListFormatter::TYPE_UNITS</constant>, y los anchos
|
||||
<constant>IntlListFormatter::WIDTH_WIDE</constant>,
|
||||
<constant>IntlListFormatter::WIDTH_SHORT</constant> y
|
||||
<constant>IntlListFormatter::WIDTH_NARROW</constant>.
|
||||
Es compatible a partir de ICU 67.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.pdo-sqlite">
|
||||
<title>PDO_Sqlite</title>
|
||||
|
||||
<simpara>
|
||||
Añadida la constante de clase <constant>Pdo\Sqlite::ATTR_BUSY_STATEMENT</constant>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadidas las constantes de clase <constant>Pdo\Sqlite::ATTR_EXPLAIN_STATEMENT</constant>,
|
||||
<constant>Pdo\Sqlite::EXPLAIN_MODE_PREPARED</constant>,
|
||||
<constant>Pdo\Sqlite::EXPLAIN_MODE_EXPLAIN</constant>,
|
||||
<constant>Pdo\Sqlite::EXPLAIN_MODE_EXPLAIN_QUERY_PLAN</constant>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadido el atributo de conexión <constant>Pdo\Sqlite::ATTR_TRANSACTION_MODE</constant>
|
||||
con los valores posibles <constant>Pdo\Sqlite::TRANSACTION_MODE_DEFERRED</constant>,
|
||||
<constant>Pdo\Sqlite::TRANSACTION_MODE_IMMEDIATE</constant>
|
||||
y <constant>Pdo\Sqlite::TRANSACTION_MODE_EXCLUSIVE</constant>,
|
||||
lo que permite configurar el modo de transacción que se utilizará al llamar a beginTransaction().
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.session">
|
||||
<title>Sesiones</title>
|
||||
|
||||
<simpara>
|
||||
<function>session_set_cookie_params</function>,
|
||||
<function>session_get_cookie_params</function>,
|
||||
y <function>session_start</function> ahora admiten cookies particionadas mediante la
|
||||
clave <literal>"partitioned"</literal>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/CHIPS -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.soap">
|
||||
<title>SOAP</title>
|
||||
|
||||
<simpara>
|
||||
Los casos de enumeración ahora se vuelcan en <methodname>SoapClient::__getTypes</methodname>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadida compatibilidad con el atributo xml:lang de Soap 1.2 Reason Text.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Por lo tanto, las firmas de <methodname>SoapFault::__construct</methodname> y
|
||||
<methodname>SoapServer::fault</methodname>
|
||||
ahora incluyen un parámetro opcional <parameter>$lang</parameter>.
|
||||
Esta compatibilidad resuelve el problema de compatibilidad con los clientes SOAP de .NET.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.standard">
|
||||
<title>Estándar</title>
|
||||
|
||||
<simpara>
|
||||
<function>mail</function> ahora devuelve el error real de sendmail y detecta
|
||||
si el proceso de sendmail finalizó inesperadamente.
|
||||
En tales casos, se emite una advertencia y la función devuelve false.
|
||||
Anteriormente, estos errores se ignoraban silenciosamente.
|
||||
Este cambio afecta únicamente al transporte de sendmail.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>getimagesize</function> ahora admite imágenes HEIF/HEIC.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>getimagesize</function> ahora admite imágenes SVG cuando también se carga
|
||||
ext-libxml.
|
||||
Del mismo modo, <function>image_type_to_extension</function> y
|
||||
<function>image_type_to_mime_type</function>
|
||||
ahora también admiten IMAGETYPE_SVG.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
El array que devuelve <function>getimagesize</function> ahora incluye dos entradas adicionales:
|
||||
<literal>"width_unit"</literal> y <literal>"height_unit"</literal> para indicar las
|
||||
unidades en las que se expresan las dimensiones. Estas unidades son px por omisión. No tienen
|
||||
por qué ser iguales (por poner solo un ejemplo: una puede ser cm y la otra px).
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>setcookie</function> y <function>setrawcookie</function> ahora admiten la
|
||||
clave <literal>"partitioned"</literal>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/CHIPS -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.uri">
|
||||
<title>URI</title>
|
||||
|
||||
<simpara>
|
||||
Añadida una extensión URI siempre habilitada que se puede utilizar para manejar
|
||||
URI y URL de acuerdo con RFC 3986 y WHATWG URL.
|
||||
<!-- RFC: https://wiki.php.net/rfc/url_parsing_api -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.xsl">
|
||||
<title>XSL</title>
|
||||
|
||||
<simpara>
|
||||
El argumento <parameter>$namespace</parameter> de <methodname>XSLTProcessor::getParameter</methodname>,
|
||||
<methodname>XSLTProcessor::setParameter</methodname> y
|
||||
<methodname>XSLTProcessor::removeParameter</methodname> ahora funciona correctamente
|
||||
en lugar de considerarse vacío.
|
||||
Esto solo funciona si el argumento <parameter>$name</parameter> no utiliza la notación Clark ni es un
|
||||
QName, ya que en esos casos el espacio de nombres se obtiene del espacio de nombres href o
|
||||
prefijo, respectivamente.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.zlib">
|
||||
<title>Zlib</title>
|
||||
|
||||
<simpara>
|
||||
Ahora se admite <function>flock</function> en flujos zlib. Anteriormente,
|
||||
esta función siempre fallaba al realizar cualquier acción de bloqueo.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
152
appendices/migration85/new-functions.xml
Normal file
152
appendices/migration85/new-functions.xml
Normal file
@@ -0,0 +1,152 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Marqitos Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<sect1 xml:id="migration85.new-functions">
|
||||
<title>Nuevas funciones</title>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.core">
|
||||
<title>Núcleo</title>
|
||||
|
||||
<simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/get-error-exception-handler -->
|
||||
<!-- RFC: https://wiki.php.net/rfc/get-error-exception-handler -->
|
||||
<member><function>get_error_handler</function></member>
|
||||
<member><function>get_exception_handler</function></member>
|
||||
<member>
|
||||
<methodname>Closure::getCurrent</methodname>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.curl">
|
||||
<title>Curl</title>
|
||||
|
||||
<simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/curl_share_persistence_improvement -->
|
||||
<member><function>curl_multi_get_handles</function></member>
|
||||
<member><function>curl_share_init_persistent</function></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.dom">
|
||||
<title>DOM</title>
|
||||
<simplelist>
|
||||
<member>
|
||||
<methodname>Dom\Element::getElementsByClassName</methodname>
|
||||
</member>
|
||||
<member>
|
||||
<methodname>Dom\Element::insertAdjacentHTML</methodname>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.enchant">
|
||||
<title>Enchant</title>
|
||||
<simplelist>
|
||||
<member><function>enchant_dict_remove_from_session</function></member>
|
||||
<member><function>enchant_dict_remove</function></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.intl">
|
||||
<title>Intl</title>
|
||||
<simplelist>
|
||||
<member>
|
||||
<methodname>Locale::isRightToLeft</methodname>
|
||||
</member>
|
||||
<member><function>locale_is_right_to_left</function></member>
|
||||
<!-- RFC: https://wiki.php.net/rfc/grapheme_levenshtein -->
|
||||
<member><function>grapheme_levenshtein</function></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.opcache">
|
||||
<title>Opcache</title>
|
||||
|
||||
<simplelist>
|
||||
<member><function>opcache_is_script_cached_in_file_cache</function></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.pdo-sqlite">
|
||||
<title>PDO_SQLITE</title>
|
||||
<simplelist>
|
||||
<member>
|
||||
<methodname>Pdo\Sqlite::setAuthorizer</methodname>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.pgsql">
|
||||
<title>PGSQL</title>
|
||||
|
||||
<simplelist>
|
||||
<member><function>pg_close_stmt</function></member>
|
||||
<member><function>pg_service</function></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<methodname>ReflectionConstant::getFileName</methodname>
|
||||
</member>
|
||||
<member>
|
||||
<methodname>ReflectionConstant::getExtension</methodname>
|
||||
</member>
|
||||
<member>
|
||||
<methodname>ReflectionConstant::getExtensionName</methodname>
|
||||
</member>
|
||||
<!-- RFC: https://wiki.php.net/rfc/attributes-on-constants -->
|
||||
<member>
|
||||
<methodname>ReflectionConstant::getAttributes</methodname>
|
||||
</member>
|
||||
<member>
|
||||
<methodname>ReflectionProperty::getMangledName</methodname>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.sqlite">
|
||||
<title>Sqlite</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<methodname>Sqlite3Stmt::busy</methodname>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.standard">
|
||||
<title>Estándar</title>
|
||||
|
||||
<simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/array_first_last -->
|
||||
<member><function>array_first</function></member>
|
||||
<member><function>array_last</function></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
631
appendices/migration85/other-changes.xml
Normal file
631
appendices/migration85/other-changes.xml
Normal file
@@ -0,0 +1,631 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Marqitos Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<sect1 xml:id="migration85.other-changes">
|
||||
<title>Otros cambios</title>
|
||||
|
||||
<sect2 xml:id="migration85.other-changes.core">
|
||||
<title>Cambios en el núcleo</title>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.core.core">
|
||||
<title>Núcleo</title>
|
||||
|
||||
<simpara>
|
||||
El temporizador de alta resolución (<function>hrtime</function>) en macOS ahora
|
||||
utiliza la API recomendada
|
||||
<code>clock_gettime_nsec_np(CLOCK_UPTIME_RAW)</code> en lugar de
|
||||
<code>mach_absolute_time()</code>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.core.cgi-cli">
|
||||
<title>CGI/CLI</title>
|
||||
|
||||
<simpara>
|
||||
Se ha eliminado la opción <option>-z</option> o <option>--zend-extension</option>
|
||||
ya que no funcionaba.
|
||||
En su lugar, utilice <option>-d zend_extension=[ruta]</option>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.core.pdo-odbc">
|
||||
<title>PDO_ODBC</title>
|
||||
|
||||
<simpara>
|
||||
Se ha modificado el comportamiento de recuperación de datos para columnas de mayor tamaño. En lugar de
|
||||
recuperar bloques de 256 bytes, PDO_ODBC intentará recuperar bloques de mayor tamaño;
|
||||
actualmente, este tamaño corresponde al tamaño de página menos la sobrecarga de cadena.
|
||||
Los controladores que devuelven SQL_NO_TOTAL en SQLGetData también se gestionan mejor.
|
||||
Esto debería mejorar la compatibilidad y el rendimiento.
|
||||
<!-- See: GH-10809, GH-10733 -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.other-changes.sapi">
|
||||
<title>Changes in SAPI Modules</title>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.sapi.cli">
|
||||
<title>CLI</title>
|
||||
|
||||
<simpara>
|
||||
Intentar establecer un título de proceso demasiado largo con
|
||||
<function>cli_set_process_title</function> ahora fallará en lugar de
|
||||
truncar silenciosamente el título dado.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Se agregó una nueva opción <option>--ini=diff</option> para imprimir la configuración INI
|
||||
modificada con respecto al valor predeterminado integrado.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.sapi.fpm">
|
||||
<title>FPM</title>
|
||||
|
||||
<simpara>
|
||||
FPM con httpd ProxyPass decodifica opcionalmente la ruta completa del script. Se ha añadido
|
||||
la configuración INI <!-- <link linkend="ini.fastcgi.script_path_encoded"-->fastcgi.script_path_encoded<!-- </link> -->
|
||||
para evitar este nuevo comportamiento.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
El límite de registro de acceso de FPM ahora respeta el valor <link linkend="log-limit">log_limit</link>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.other-changes.functions">
|
||||
<title>Funciones modificadas</title>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
<function>grapheme_extract</function> asigna correctamente el valor de
|
||||
<parameter>$next</parameter> al omitir bytes iniciales no válidos.
|
||||
Anteriormente, en ocasiones apuntaba al inicio del
|
||||
límite del grafema en lugar de al final.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Se ha eliminado &false; de la unión de tipos de retorno de
|
||||
<function>transliterator_get_error_code</function>,
|
||||
<function>transliterator_get_error_message</function>,
|
||||
<methodname>TransLiterator::getErrorCode</methodname>,
|
||||
y <methodname>TransLiterator::getErrorMessage</methodname>. Devolver &false;
|
||||
nunca fue posible.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Las siguientes funciones ahora admiten un argumento <parameter>$locale</parameter>:
|
||||
<function>grapheme_strpos</function>,
|
||||
<function>grapheme_stripos</function>,
|
||||
<function>grapheme_strrpos</function>,
|
||||
<function>grapheme_strripos</function>,
|
||||
<function>grapheme_substr</function>,
|
||||
<function>grapheme_strstr</function> y
|
||||
<function>grapheme_stristr</function>
|
||||
<!-- RFC: https://wiki.php.net/rfc/grapheme_add_locale_for_case_insensitive -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.ldap">
|
||||
<title>LDAP</title>
|
||||
|
||||
<simpara>
|
||||
<function>ldap_get_option</function> ahora acepta una conexión &null;,
|
||||
como <function>ldap_set_option</function>, para permitir la recuperación de
|
||||
opciones globales.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.libxml">
|
||||
<title>libxml</title>
|
||||
|
||||
<simpara>
|
||||
<function>libxml_set_external_entity_loader</function> ahora tiene un tipo
|
||||
de retorno formal de <type>true</type>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.openssl">
|
||||
<title>OpenSSL</title>
|
||||
|
||||
<simpara>
|
||||
<function>openssl_public_encrypt</function> y
|
||||
<function>openssl_private_decrypt</function> tienen un nuevo parámetro
|
||||
<parameter>$digest_algo</parameter> que permite especificar el algoritmo de
|
||||
resumen hash para el relleno OAEP.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>openssl_sign</function> y <function>openssl_verify</function>
|
||||
tienen un nuevo parámetro <parameter>$padding</parameter> para permitir el uso
|
||||
de un relleno RSA PSS más seguro.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>openssl_cms_encrypt</function> el parámetro <parameter>$cipher_algo</parameter>
|
||||
puede ser un string con el nombre del algoritmo de cifrado.
|
||||
Esto permite usar más algoritmos, incluidos los algoritmos de cifrado AES y GCM, para
|
||||
datos cifrados con autenticación.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.pcntl">
|
||||
<title>PCNTL</title>
|
||||
|
||||
<simpara>
|
||||
<function>pcntl_exec</function> ahora tiene un tipo de retorno formal de
|
||||
<type>false</type>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>pcntl_waitid</function> toma un argumento resource_usage adicional
|
||||
para recopilar varias métricas específicas de la plataforma sobre el proceso hijo.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.pdo-pgsql">
|
||||
<title>PDO_PGSQL</title>
|
||||
|
||||
<simpara>
|
||||
<methodname>Pdo\Pgsql::copyFromArray</methodname> ahora admite entradas <type>iterable</type>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<methodname>Pdo\Pgsql::setAttribute</methodname> y
|
||||
<methodname>Pdo\Pgsql::prepare</methodname> permiten establecer
|
||||
<constant>PDO::ATTR_PREFETCH</constant> en 0, lo que activa el modo de carga diferida.
|
||||
En este modo, las sentencias no se pueden ejecutar en paralelo.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.pgsql">
|
||||
<title>PostgreSQL</title>
|
||||
|
||||
<simpara>
|
||||
<function>pg_copy_from</function> ahora admite entradas <type>iterable</type>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>pg_connect</function> comprueba si el argumento connection_string
|
||||
contiene algún byte nulo.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>pg_close_stmt</function> comprueba si el argumento statement_name
|
||||
contiene algún byte nulo.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.posix">
|
||||
<title>POSIX</title>
|
||||
|
||||
<simpara>
|
||||
<function>posix_ttyname</function> establece last_error en EBADF cuando encuentra
|
||||
un descriptor de archivo no válido.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>posix_isatty</function> genera un mensaje <constant>E_WARNING</constant>
|
||||
cuando encuentra un descriptor de archivo no válido.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>posix_fpathconf</function> comprueba los descriptores de archivo no válidos y
|
||||
establece last_error en EBADF y genera un mensaje <constant>E_WARNING</constant>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<simpara>
|
||||
La salida de <methodname>ReflectionClass::__toString</methodname> para
|
||||
enumeraciones ha cambiado para indicar mejor que la clase es una enumeración y que
|
||||
los casos de enumeración son casos de enumeración en lugar de constantes de clase normales.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
La salida de <methodname>ReflectionProperty::__toString</methodname> para
|
||||
propiedades con hooks ha cambiado para indicar qué hooks tiene la propiedad,
|
||||
si son finales y si la propiedad es virtual.
|
||||
Esto también afecta al resultado de <methodname>ReflectionClass::__toString</methodname>
|
||||
cuando una clase contiene propiedades con hooks.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.sockets">
|
||||
<title>Sockets</title>
|
||||
|
||||
<simpara>
|
||||
<function>socket_create</function>/<function>socket_bind</function> puede
|
||||
crear sockets de la familia <constant>AF_PACKET</constant>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>socket_getsockname</function> obtiene el índice de la interfaz y su
|
||||
representación de string con el socket <constant>AF_PACKET</constant>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.zlib">
|
||||
<title>Zlib</title>
|
||||
|
||||
<simpara>
|
||||
El argumento <parameter>$use_include_path</parameter> para las funciones
|
||||
<function>gzfile</function>, <function>gzopen</function> y
|
||||
<function>readgzfile</function> se ha cambiado
|
||||
de <type>int</type> a <type>bool</type>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Las funciones <function>gzfile</function>,
|
||||
<function>gzopen</function> y <function>readgzfile</function>
|
||||
ahora respetan el contexto de flujo predeterminado.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.other-changes.extensions">
|
||||
<title>Otros cambios en las extensiones</title>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.curl">
|
||||
<title>cURL</title>
|
||||
|
||||
<simpara>
|
||||
<function>curl_setopt</function> con
|
||||
el valor de la opción <constant>CURLOPT_FOLLOWLOCATION</constant>
|
||||
ya no se trata como booleano, sino como entero para manejar
|
||||
<constant>CURLFOLLOW_OBEYCODE</constant> y
|
||||
<constant>CURLFOLLOW_FIRSTONLY</constant>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.fileinfo">
|
||||
<title>Fileinfo</title>
|
||||
|
||||
<simpara>
|
||||
Actualizado file de 5.45 a 5.46.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
El tipo de retorno de <function>finfo_close</function> se ha cambiado a
|
||||
<type>true</type>, en lugar de <type>bool</type>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
El mecanismo interno de errores de Intl se ha modernizado para
|
||||
indicar con mayor precisión qué sitio de llamada causó qué error.
|
||||
Además, algunas excepciones de extensión/fecha ahora se encapsulan dentro de una
|
||||
<classname>IntlException</classname>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.lexbor">
|
||||
<title>Lexbor</title>
|
||||
|
||||
<simpara>
|
||||
Se ha añadido una extensión Lexbor siempre habilitada. Contiene la biblioteca Lexbor
|
||||
que se separó de <link linkend="book.dom">ext/dom</link>
|
||||
para su reutilización en otras extensiones.
|
||||
La nueva extensión no está expuesta directamente al espacio de usuario.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.opcache">
|
||||
<title>Opcache</title>
|
||||
|
||||
<simpara>
|
||||
La <link linkend="book.opcache">extensión Opcache</link> ahora viene siempre
|
||||
integrada en el binario de PHP y siempre se carga.
|
||||
Las directivas INI <link linkend="ini.opcache.enable">opcache.enable</link>
|
||||
y <link linkend="ini.opcache.enable-cli">opcache.enable_cli</link> siguen
|
||||
siendo válidas.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.pcre">
|
||||
<title>PCRE</title>
|
||||
|
||||
<simpara>
|
||||
Se actualizó pcre2lib de 10.44 a 10.46.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.pdo-sqlite">
|
||||
<title>PDO_Sqlite</title>
|
||||
|
||||
<simpara>
|
||||
Se incrementó el soporte de versión mínima de lanzamiento de 3.7.7 a 3.7.17.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.readline">
|
||||
<title>Readline</title>
|
||||
|
||||
<simpara>
|
||||
Los tipos de retorno de <function>readline_add_history</function>,
|
||||
<function>readline_clear_history</function>
|
||||
y <function>readline_callback_handler_install</function> se han
|
||||
cambiado a <type>true</type>, en lugar de <type>bool</type>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<simpara>
|
||||
<classname>ReflectionConstant</classname> ya no es final.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.other-changes.ini">
|
||||
<title>Cambios en el manejo de archivos INI</title>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.ini.core">
|
||||
<title>Núcleo</title>
|
||||
|
||||
<simpara>
|
||||
Añadido fatal_error_backtraces para controlar si los errores fatales deben incluir
|
||||
un seguimiento de pila.
|
||||
<!-- RFC: https://wiki.php.net/rfc/error_backtraces_v2 -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadida la configuración INI max_memory_limit, solo para el inicio, para controlar el máximo
|
||||
memory_limit que se puede configurar al inicio o durante la ejecución. Si se supera
|
||||
este valor, se genera una advertencia, a menos que se establezca en -1, lo cual establece memory_limit al
|
||||
valor actual de max_memory_limit.
|
||||
<!-- ML discussion: https://externals.io/message/127108 -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.ini.opcache">
|
||||
<title>Opcache</title>
|
||||
|
||||
<simpara>
|
||||
Añadido opcache.file_cache_read_only para admitir un directorio
|
||||
<link linkend="ini.opcache.file-cache">opcache.file_cache</link> de solo lectura,
|
||||
para su uso con sistemas de archivos de solo lectura (p. ej., contenedores Docker de solo lectura).
|
||||
Se recomienda usarlo con <literal>opcache.validate_timestamps=0</literal>,
|
||||
<literal>opcache.enable_file_override=1</literal>
|
||||
y <literal>opcache.file_cache_consistency_checks=0</literal>.
|
||||
</simpara>
|
||||
|
||||
<note>
|
||||
<simpara>
|
||||
Es posible que se ignore una caché generada con una compilación diferente de PHP,
|
||||
una ruta de archivo diferente, o una configuración diferente
|
||||
(incluidas las extensiones que se cargan).
|
||||
</simpara>
|
||||
</note>
|
||||
|
||||
<simpara>
|
||||
El valor predeterminado de
|
||||
<link linkend="ini.opcache.jit-hot-loop">opcache.jit_hot_loop</link>
|
||||
ahora es 61 (un número primo) para evitar que sea múltiplo del número de iteraciones
|
||||
del bucle.
|
||||
Se recomienda establecer este parámetro en un número primo.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Modificar <link
|
||||
linkend="ini.opcache.memory-consumption">opcache.memory_consumption</link>
|
||||
cuando OPcache SHM ya está configurado ahora informará correctamente un fallo
|
||||
en lugar de no hacer nada silenciosamente y mostrar valores engañosos en PHPInfo.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.ini.openssl">
|
||||
<title>OpenSSL</title>
|
||||
|
||||
<simpara>
|
||||
Añadido <!-- <link linkend="ini.openssl.libctx"-->openssl.libctx<!-- </link> -->
|
||||
para seleccionar el tipo de contexto de la biblioteca OpenSSL.
|
||||
Se puede usar un contexto de biblioteca personalizado para cada hilo o un único contexto de biblioteca global (predeterminado).
|
||||
Se puede utilizar una biblioteca libctx personalizada para cada hilo o una única biblioteca
|
||||
libctx global (predeterminada).
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.other-changes.performance">
|
||||
<title>Rendimiento</title>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.core">
|
||||
<title>Núcleo</title>
|
||||
|
||||
<simpara>
|
||||
Eliminados los OPcodes para comparaciones de identidad con valores booleanos, en particular
|
||||
para el patrón <code>match(true)</code>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Añadida especialización de OPcode para comparaciones <code>=== []</code> y
|
||||
<code>!== []</code>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
La creación de objetos de excepción ahora es mucho más rápida.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Las partes del código que utilizaban SSE2 se han adaptado para utilizar también SIMD
|
||||
con ARM NEON.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Se introdujo la máquina virtual TAILCALL, habilitada por defecto al compilar con Clang>=19
|
||||
en x86_64 o aarch64. La máquina virtual TAILCALL es tan rápida como la máquina virtual HYBRID utilizada
|
||||
al compilar con GCC. Esto hace que los binarios de PHP compilados con Clang>=19 sean tan rápidos como
|
||||
los binarios compilados con GCC. El rendimiento de la máquina virtual CALL, utilizada con otros
|
||||
compiladores, también ha mejorado considerablemente.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
Ahora se evita la creación de copias adicionales de strings al convertir strings
|
||||
para su uso en el intercalador.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.mbstring">
|
||||
<title>MBString</title>
|
||||
|
||||
<simpara>
|
||||
Las partes del código que utilizaban SSE2 se han adaptado para utilizar también SIMD
|
||||
con ARM NEON.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.opcache">
|
||||
<title>Opcache</title>
|
||||
|
||||
<simpara>
|
||||
Mejora del rendimiento en la recuperación de variables TLS en código compilado con JIT en compilaciones
|
||||
que no utilizan Glibc.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<para>
|
||||
Mejorado el rendimiento de los siguientes métodos:
|
||||
<simplelist>
|
||||
<member><methodname>ReflectionProperty::getValue</methodname></member>
|
||||
<member><methodname>ReflectionProperty::getRawValue</methodname></member>
|
||||
<member><methodname>ReflectionProperty::isInitialized</methodname></member>
|
||||
<member><methodname>ReflectionProperty::isInitialized</methodname></member>
|
||||
<member><methodname>ReflectionProperty::setValue</methodname></member>
|
||||
<member><methodname>ReflectionProperty::setRawValue</methodname></member>
|
||||
</simplelist>
|
||||
</para>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.spl">
|
||||
<title>SPL</title>
|
||||
|
||||
<simpara>
|
||||
Mejorado el rendimiento de los métodos y accesores de dimensiones de
|
||||
<classname>SplFixedArray</classname>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.standard">
|
||||
<title>Estándar</title>
|
||||
|
||||
<simpara>
|
||||
Mejorado el rendimiento de las funciones array con funciones de devoluciones de llamada
|
||||
(<function>array_find</function>, <function>array_filter</function>,
|
||||
<function>array_map</function>, <function>usort</function>, ...).
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Mejorado el rendimiento de <function>urlencode</function> y
|
||||
<function>rawurlencode</function>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Mejorado el rendimiento de <function>unpack</function> con repeticiones sin nombre
|
||||
al evitar la creación de strings temporales y su posterior análisis.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Mejorado el rendimiento de <function>pack</function>.
|
||||
Improved <function>pack</function> performance.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Mejoras menores en el rendimiento de <function>array_chunk</function>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.xml">
|
||||
<title>XML</title>
|
||||
|
||||
<simpara>
|
||||
Mejorado el rendimiento del acceso a las propiedades de <classname>XMLReader</classname>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Mejorado el rendimiento de <classname>XMLWriter</classname> y consumo de
|
||||
memoria reducido.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
94
appendices/migration85/windows-support.xml
Normal file
94
appendices/migration85/windows-support.xml
Normal file
@@ -0,0 +1,94 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Marqitos Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<sect1 xml:id="migration85.windows-support">
|
||||
<title>Soporte para Windows</title>
|
||||
|
||||
<sect2 xml:id="migration85.windows-support.core">
|
||||
<title>Núcleo</title>
|
||||
|
||||
<simpara>
|
||||
Las variables de configuración <constant>PHP_VERSION</constant>,
|
||||
<constant>PHP_MINOR_VERSION</constant> y
|
||||
<constant>PHP_RELEASE_VERSION</constant> ahora siempre son números.
|
||||
Anteriormente, eran strings para las compilaciones de buildconf.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Las compilaciones de <command>phpize</command> ahora reflejan el árbol de origen en el
|
||||
directorio de compilación (como ya funcionaba para las compilaciones dentro del árbol); algunas compilaciones
|
||||
de extensión (especialmente cuando se usa Makefile.frag.w32) pueden necesitar ajustes.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ahora se admite <option role="configure">--enable-sanitizer</option>
|
||||
para compilaciones de MSVC. Esto habilita ASan y las aserciones de depuración, y es compatible
|
||||
a partir de MSVC 16.10 y Windows 10.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
La <option role="configure">--with-uncritical-warn-choke</option>
|
||||
para las compilaciones de clang ya no es compatible.
|
||||
En su lugar, seleccione las advertencias que desea suprimir mediante CFLAGS.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.windows-support.com">
|
||||
<title>COM</title>
|
||||
|
||||
<simpara>
|
||||
Ahora la extensión se compila de forma compartida por defecto; anteriormente se compilaba
|
||||
como una extensión estática por defecto, aunque los binarios oficiales de Windows compilaban una
|
||||
extensión compartida.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.windows-support.ffi">
|
||||
<title>FFI</title>
|
||||
|
||||
<simpara>
|
||||
Ya no es necesario especificar la biblioteca al usar
|
||||
<methodname>FFI::cdef</methodname> y <methodname>FFI::load</methodname>.
|
||||
Sin embargo, esta funcionalidad no debe utilizarse en producción.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.windows-support.streams">
|
||||
<title>Streams</title>
|
||||
|
||||
<simpara>
|
||||
Si el array <parameter>$read</parameter> solo contiene pipe streams
|
||||
y los arrays <parameter>$write</parameter> y <parameter>$except</parameter> están vacíos,
|
||||
<function>stream_select</function> ahora se comporta de forma similar a los sistemas POSIX;
|
||||
es decir, la función solo retorna si al menos un pipe está listo para leerse
|
||||
o después de que expire el tiempo de espera.
|
||||
Anteriormente, <function>stream_select</function> retornaba inmediatamente,
|
||||
indicando que todos los flujos estaban listos para leerse.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
@@ -836,7 +836,7 @@ carpeta PHP a la carpeta del sistema de Windows también funciona (ya que la car
|
||||
<emphasis xmlns="http://docbook.org/ns/docbook">Esta extensión requiere que los siguientes archivos estén en el
|
||||
<envar>PATH</envar>:</emphasis> '>
|
||||
|
||||
<!ENTITY manual.migration.seealso 'Ver también los guías de migración entre las diferentes versiones de PHP'>
|
||||
<!ENTITY manual.migration.seealso 'Véase también las guías de migración entre las diferentes versiones de PHP'>
|
||||
|
||||
<!ENTITY style.oop 'Estilo orientado a objetos'>
|
||||
<!ENTITY style.procedural 'Estilo procedimental'>
|
||||
|
||||
Reference in New Issue
Block a user