mirror of
https://github.com/php/doc-fr.git
synced 2026-03-23 22:52:18 +01:00
Translate migrations 85 (#2285)
This commit is contained in:
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: Fan2Shrek Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<appendix xml:id="migration85" xmlns="http://docbook.org/ns/docbook">
|
||||
<title>Migration de PHP 8.4.x vers PHP 8.5.x</title>
|
||||
|
||||
<simpara>
|
||||
Cette nouvelle version mineure apporte un certain nombre de
|
||||
<link linkend="migration85.new-features">nouvelles fonctionnalités</link> et
|
||||
<link linkend="migration85.incompatible">quelques incompatibilités</link>
|
||||
qui devraient être testées avant de passer à une nouvelle version de PHP en
|
||||
production.
|
||||
</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: Fan2Shrek Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration85.constants">
|
||||
<title>Nouvelles constantes globales</title>
|
||||
|
||||
<sect2 xml:id="migration85.constants.core">
|
||||
<title>Core</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> (FreeBSD seulement)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_FUNCTION_ALIAS</constant> (FreeBSD seulement)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_REUSPORT_LB_NUMA</constant> (FreeBSD seulement)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_REUSPORT_LB_NUMA_NODOM</constant> (FreeBSD seulement)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_REUSPORT_LB_NUMA_CURDOM</constant> (FreeBSD seulement)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_BBR_ALGORITHM</constant> (FreeBSD seulement)
|
||||
</member>
|
||||
<member>
|
||||
<constant>AF_PACKET</constant> (Linux seulement)
|
||||
</member>
|
||||
<member>
|
||||
<constant>IP_BINDANY</constant> (FreeBSD/NetBSD/OpenBSD seulement)
|
||||
</member>
|
||||
<member>
|
||||
<constant>SO_BUSY_POLL</constant> (Linux seulement)
|
||||
</member>
|
||||
<member>
|
||||
<constant>UDP_SEGMENT</constant> (Linux seulement)
|
||||
</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>Standard</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>IMAGETYPE_SVG</constant>
|
||||
lorsque libxml est chargé.
|
||||
</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
|
||||
-->
|
||||
532
appendices/migration85/deprecated.xml
Normal file
532
appendices/migration85/deprecated.xml
Normal file
@@ -0,0 +1,532 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Fan2Shrek Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration85.deprecated">
|
||||
<title>Fonctionnalités dépréciées</title>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.core">
|
||||
<title>PHP Core</title>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.changes-to-user-output-handler">
|
||||
<title>Changement aux gestionnaires de sortie utilisateur</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_4 -->
|
||||
|
||||
<simpara>
|
||||
Renvoyer une valeur non-chaîne depuis un gestionnaire de sortie utilisateur est déprécié. La
|
||||
notification de dépréciation contournera le gestionnaire avec la mauvaise valeur de retour pour s'assurer
|
||||
qu'elle soit visible ; s'il y a des gestionnaires de sortie imbriqués, le suivant sera
|
||||
toujours utilisé.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Essayer de produire une sortie (par exemple avec <function>echo</function>) dans un
|
||||
gestionnaire de sortie utilisateur est déprécié.
|
||||
L'avertissement de dépréciation contournera le gestionnaire produisant la sortie pour
|
||||
s'assurer qu'elle soit visible ; s'il y a des gestionnaires de sortie imbriqués,
|
||||
le suivant sera toujours utilisé. Si un gestionnaire de sortie utilisateur renvoie une valeur non-chaîne et
|
||||
produit une sortie, l'avertissement concernant la production d'une sortie est émis en premier.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.non-canonical-cast-names">
|
||||
<title>Les noms de cast non canoniques</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_non-standard_cast_names -->
|
||||
|
||||
<simpara>
|
||||
Les noms de cast non canoniques <literal>(boolean)</literal>,
|
||||
<literal>(integer)</literal>, <literal>(double)</literal>,
|
||||
et <literal>(binary)</literal> ont été dépréciés.
|
||||
Utiliser <literal>(bool)</literal>, <literal>(int)</literal>,
|
||||
<literal>(float)</literal>, et <literal>(string)</literal> respectivement.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.case-statements-with-semicolon">
|
||||
<title>Terminer les instructions case par un point-virgule</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_semicolon_after_case_in_switch_statement -->
|
||||
|
||||
<simpara>
|
||||
Terminer les instructions case par un point-virgule au lieu d'un deux-points a
|
||||
été déprécié.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.the-backtick-operator">
|
||||
<title>L'opérateur backtick (accent grave)</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">L'opérateur backtick (accent grave)</link>
|
||||
en tant qu'alias de <function>shell_exec</function> a été déprécié.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.return-null-from-debuginfo">
|
||||
<title>Retourner null depuis __debugInfo()</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_debuginfo_returning_null -->
|
||||
|
||||
<simpara>
|
||||
Retourner &null; depuis
|
||||
<link linkend="language.oop5.magic.debuginfo">__debugInfo()</link>
|
||||
a été déprécié. Retourner un tableau vide à la place.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.return-memleaks-ini-directive">
|
||||
<title>Directive INI report_memleaks</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_report_memleaks_ini_directive -->
|
||||
|
||||
<simpara>
|
||||
La directive INI <link linkend="ini.report-memleaks">report_memleaks</link>
|
||||
a été dépréciée.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.constant-redeclaration">
|
||||
<title>Redéclaration de constantes</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_constant_redeclaration -->
|
||||
|
||||
<simpara>
|
||||
La redéclaration de constantes a été dépréciée.
|
||||
Notez que cela générait déjà un avertissement et continuera à le faire.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.closure-binding-issues">
|
||||
<title>Problèmes de liaison des fermetures</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_closure_binding_issues -->
|
||||
|
||||
<para>
|
||||
Les problèmes suivants de liaison des fermetures, qui génèrent déjà un
|
||||
<constant>E_WARNING</constant>, sont désormais dépréciés :
|
||||
|
||||
<simplelist>
|
||||
<member>Liaison d'une instance à une fermeture statique.</member>
|
||||
<member>Liaison de méthodes à des objets qui ne sont pas des instances de la classe
|
||||
(ou sous-classe) dans laquelle la méthode est définie.</member>
|
||||
<member>Dissociation de $this d'une méthode.</member>
|
||||
<member>Dissociation de $this d'une fermeture qui utilise `$this`.</member>
|
||||
<member>Liaison d'une fermeture au contexte d'une classe interne.</member>
|
||||
<member>Re-liaison du contexte d'une fermeture créée à partir d'une fonction ou d'une méthode.</member>
|
||||
</simplelist>
|
||||
</para>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.sleep-and-wakeup-magic-methods">
|
||||
<title>Les méthodes magiques __sleep() et __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>
|
||||
Les méthodes magiques <link linkend="object.sleep">__sleep()</link> et
|
||||
<link linkend="object.wakeup">__wakeup()</link> ont été doucement dépréciées.
|
||||
Les méthodes magiques <link linkend="object.serialize">__serialize()</link> et
|
||||
<link linkend="object.unserialize">__unserialize()</link> devraient être utilisées
|
||||
à la place, ou en même temps si la compatibilité
|
||||
avec PHP 7 est requise.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.using-null-as-an-array-offset">
|
||||
<title>Utilisation de null comme offset de tableau</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>
|
||||
L'utilisation de &null; comme offset de tableau ou lors de l'appel de <function>array_key_exists</function>
|
||||
est désormais dépréciée. À la place, une chaîne vide doit être utilisée.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.incrementing-non-numeric-strings">
|
||||
<title>Incrémentation des chaînes non numériques</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#enact_follow-up_phase_of_the_path_to_saner_incrementdecrement_operators_rfc -->
|
||||
|
||||
<simpara>
|
||||
L'incrémentation des chaînes non numériques est désormais dépréciée.
|
||||
À la place, la fonction <function>str_increment</function> doit être utilisée.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.register-argc-argv-directive">
|
||||
<title>Directive INI register_argc_argv</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_register_argc_argv_ini_directive -->
|
||||
|
||||
<simpara>
|
||||
La dérivation de <code>$_SERVER['argc']</code> et <code>$_SERVER['argv']</code>
|
||||
à partir de la chaîne de requête pour les SAPIs non-CLI a été dépréciée.
|
||||
Configurez <literal>register_argc_argv=0</literal> et passez soit à
|
||||
<varname>$_GET</varname> soit à <code>$_SERVER['QUERY_STRING']</code>
|
||||
pour accéder à l'information, après avoir vérifié que l'utilisation est sûre.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.curl">
|
||||
<title>cURL</title>
|
||||
|
||||
<simpara>
|
||||
La fonction <function>curl_close</function> a été dépréciée,
|
||||
car les objets <classname>CurlHandle</classname> sont libérés automatiquement.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_curl_close -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
La fonction <function>curl_share_close</function> a été dépréciée,
|
||||
car les objets <classname>CurlShareHandle</classname> sont libérés automatiquement.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_curl_share_close -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.date">
|
||||
<title>Date</title>
|
||||
|
||||
<simpara>
|
||||
Les constantes <constant>DATE_RFC7231</constant> et
|
||||
<constant>DateTimeInterface::RFC7231</constant> ont été dépréciées.
|
||||
Cela est dû au fait que le fuseau horaire associé est ignoré et utilise toujours 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 fonction <function>finfo_close</function> a été dépréciée,
|
||||
car les objets <classname>finfo</classname> sont libérés automatiquement.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_finfo_close -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Le paramètre <parameter>$context</parameter> de la fonction
|
||||
<function>finfo_buffer</function> a été déprécié,
|
||||
car il est ignoré.
|
||||
<!-- 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 fonction <function>imagedestroy</function> a été dépréciée,
|
||||
car les objets <classname>GdImage</classname> sont libérés automatiquement.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_imagedestroy -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.hash">
|
||||
<title>Hash</title>
|
||||
|
||||
<simpara>
|
||||
Les constantes <constant>MHASH_<replaceable>*</replaceable></constant> ont
|
||||
été dépréciées.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
La configuration INI <link linkend="ini.intl.error-level">intl.error_level</link>
|
||||
a été dépréciée.
|
||||
Les erreurs doivent soit être vérifiées manuellement, soit les exceptions doivent être activées
|
||||
en utilisant la configuration 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>
|
||||
Les appels et constantes spécifiques à Oracle Instant Client ont été dépréciés.
|
||||
|
||||
Liste des appels affectés :
|
||||
<simplelist>
|
||||
<member><function>ldap_connect</function> avec le support wallet</member>
|
||||
<member><function>ldap_connect_wallet</function></member>
|
||||
</simplelist>
|
||||
|
||||
Liste des constantes affectées :
|
||||
<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>
|
||||
L'alias <function>mysqli_execute</function> a été déprécié.
|
||||
Utilisez <function>mysqli_stmt_execute</function> à la place.
|
||||
<!-- 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>
|
||||
Le paramètre <parameter>$key_length</parameter> de la fonction
|
||||
<function>openssl_pkey_derive</function> a été déprécié.
|
||||
Cela est dû au fait qu'il est soit ignoré, soit tronque la clé, ce qui peut être
|
||||
une vulnérabilité de sécurité.
|
||||
<!-- 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>
|
||||
Le schéma DSN <literal>"uri:"</literal> a été déprécié en raison de problèmes de sécurité liés aux
|
||||
DSN provenant d'URI distantes.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_pdo_s_urischeme -->
|
||||
</simpara>
|
||||
|
||||
<para>
|
||||
Les constantes spécifiques aux pilotes dans la classe PDO ont été dépréciées.
|
||||
Liste des constantes affectées et leur remplacement :
|
||||
|
||||
<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>
|
||||
Les méthodes spécifiques aux pilotes dans la classe PDO ont été dépréciées.
|
||||
Liste des méthodes affectées et leur remplacement :
|
||||
|
||||
<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>
|
||||
Les constantes liées aux états de transaction ont été dépréciées car cette fonctionnalité n'est pas disponible avec 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>
|
||||
Les méthodes <code>setAccessible()</code> de divers objets Reflection ont été
|
||||
dépréciées, car elles n'ont plus d'effet.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_reflectionsetaccessible -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
L'appel de <methodname>ReflectionClass::getConstant</methodname> pour des constantes
|
||||
qui n'existent pas a été déprécié.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_reflectionclassgetconstant_for_missing_constants -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
L'appel de <methodname>ReflectionProperty::getDefaultValue</methodname> pour
|
||||
des propriétés sans valeurs par défaut a été déprécié.
|
||||
<!-- 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>
|
||||
La désinscription de tous les chargeurs automatiques en passant la
|
||||
fonction <function>spl_autoload_call</function> comme argument de rappel à
|
||||
<function>spl_autoload_unregister</function> a été dépréciée.
|
||||
Si cela est nécessaire, il faut plutôt itérer sur la valeur de retour de
|
||||
<function>spl_autoload_functions</function> et appeler
|
||||
<function>spl_autoload_unregister</function> sur chaque valeur.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_passing_spl_autoload_call_to_spl_autoload_unregister -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Les méthodes <methodname>SplObjectStorage::contains</methodname>,
|
||||
<methodname>SplObjectStorage::attach</methodname>, et
|
||||
<methodname>SplObjectStorage::detach</methodname> ont été dépréciées
|
||||
au profit de <methodname>SplObjectStorage::offsetExists</methodname>,
|
||||
<methodname>SplObjectStorage::offsetSet</methodname>, et
|
||||
<methodname>SplObjectStorage::offsetUnset</methodname> respectivement.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_splobjectstoragecontains_splobjectstorageattach_and_splobjectstoragedetach -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
L'utilisation de <classname>ArrayObject</classname> et
|
||||
<classname>ArrayIterator</classname> avec des objets a été dépréciée.
|
||||
<!-- 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>Standard</title>
|
||||
|
||||
<simpara>
|
||||
L'alias <function>socket_set_timeout</function> a été déprécié.
|
||||
Utiliser <function>stream_set_timeout</function> à la place.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#formally_deprecate_socket_set_timeout -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Passer &null; à <function>readdir</function>,
|
||||
<function>rewinddir</function>, et <function>closedir</function>
|
||||
pour utiliser le dernier répertoire ouvert a été déprécié.
|
||||
Fournir explicitement le dernier répertoire ouvert à la place.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_passing_null_to_readdir_rewinddir_and_closedir -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Passer des entiers en dehors de l'intervalle <literal>[0, 255]</literal> à <function>chr</function>
|
||||
est désormais déprécié.
|
||||
Ceci est dû au fait qu'un octet ne peut contenir qu'une valeur dans cet intervalle.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_passing_integers_outside_the_interval_0_255_to_chr -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Passer des chaînes qui ne sont pas d'un octet à <function>chr</function>
|
||||
est désormais déprécié, ceci est indicatif d'un bug.
|
||||
<!-- 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 prédéfinie locale
|
||||
<link linkend="reserved.variables.httpresponseheader">$http_response_header</link>
|
||||
est dépréciée. Il faut plutôt appeler la fonction
|
||||
<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 fonction <function>xml_parser_free</function> a été dépréciée,
|
||||
car les objets <classname>XMLParser</classname> sont libérés automatiquement.
|
||||
<!-- 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
|
||||
-->
|
||||
590
appendices/migration85/incompatible.xml
Normal file
590
appendices/migration85/incompatible.xml
Normal file
@@ -0,0 +1,590 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Fan2Shrek Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration85.incompatible" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Changements non rétrocompatibles</title>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.core">
|
||||
<title>PHP Core</title>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.array-callable-alias">
|
||||
<title>Les noms d'alias <literal>"array"</literal> et <literal>"callable"</literal></title>
|
||||
|
||||
<simpara>
|
||||
Il n'est plus possible d'utiliser <literal>"array"</literal>
|
||||
et <literal>"callable"</literal> comme noms d'alias de classe
|
||||
dans <function>class_alias</function>
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.loosely-comparing-object">
|
||||
<title>Comparaison approximative d'objets non comparables</title>
|
||||
|
||||
<simpara>
|
||||
Comparer approximativement des objets non comparables (par exemple des enums,
|
||||
<classname>CurlHandle</classname> et d'autre classes internes) à des booléens
|
||||
était auparavant incohérent. Si comparé à un littéral booléen
|
||||
<code>$object == true</code>, il se comportait de la même manière que
|
||||
<code>(bool)$object</code>. Si comparé à une valeur statiquement inconnue
|
||||
<code>$object == $true</code>, il retournait toujours &false;.
|
||||
Ce comportement a été consolidé pour toujours suivre le comportement de
|
||||
<code>(bool)$object</code>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.gc-collect-cycles">
|
||||
<title>Valeur de retour de gc_collect_cycles</title>
|
||||
|
||||
<simpara>
|
||||
La valeur de retour de <function>gc_collect_cycles</function> n'inclut plus
|
||||
les chaînes et ressources qui ont été collectées indirectement via des cycles.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.substitute-final-subclasses">
|
||||
<title>Substituer le mot-clé static dans une sous-classe finale</title>
|
||||
|
||||
<simpara>
|
||||
Il est désormais permis de substituer <type>static</type> par <type>self</type> ou le nom concret de la classe
|
||||
dans les sous-classes finales.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.tick-handlers">
|
||||
<title>Gestionnaires de tick</title>
|
||||
|
||||
<simpara>
|
||||
Les gestionnaires de tick sont désormais désactivés après l'exécution de toutes les fonctions de fermeture,
|
||||
la destruction des objets et le nettoyage des gestionnaires de sortie.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.trait-binding">
|
||||
<title>Liaison des traits</title>
|
||||
|
||||
<simpara>
|
||||
Les traits sont désormais liés avant la classe parente. Il s'agit d'un changement comportemental subtil,
|
||||
mais qui devrait mieux correspondre aux attentes des utilisateurs.
|
||||
<!-- https://github.com/php/php-src/pull/15878 -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.errors-compilation-and-linking">
|
||||
<title>Erreurs lors de la compilation et du chaînage des classes</title>
|
||||
|
||||
<simpara>
|
||||
Les erreurs émises lors de la compilation et du chaînage des classes sont désormais toujours différées
|
||||
et traitées après la compilation ou le chaînage des classes. Les erreurs fatales émises
|
||||
lors de la compilation ou du chaînage des classes provoquent le traitement immédiat
|
||||
de toutes les erreurs différées, sans appeler les gestionnaires d'erreurs définis par l'utilisateur.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.exception-by-userdefined-handler">
|
||||
<title>Exceptions levées par les gestionnaires d'erreurs définis par l'utilisateur</title>
|
||||
|
||||
<simpara>
|
||||
Les exceptions levées par les gestionnaires d'erreurs définis par l'utilisateur lors du traitement des erreurs
|
||||
de chaînage des classes ne sont plus promues en erreurs fatales et n'empêchent plus le chaînage.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.attribute-during-compilation">
|
||||
<title>Erreur d'application d'attribut lors de la compilation</title>
|
||||
|
||||
<simpara>
|
||||
Appliquer <code>#[\Attribute]</code> à une classe abstraite, un enum, une interface ou un trait
|
||||
déclenche une erreur lors de la compilation. Auparavant, l'attribut pouvait être
|
||||
ajouté, mais lorsqu'<methodname>ReflectionAttribute::newInstance</methodname>
|
||||
était appelé, une erreur était levée.
|
||||
L'erreur peut être différée de la compilation à l'exécution en utilisant le nouvel
|
||||
attribut <code>#[\DelayedTargetValidation]</code>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.disable-ini-setting">
|
||||
<title>Le paramètre INI disable_classes</title>
|
||||
|
||||
<simpara>
|
||||
Le paramètre INI <link linkend="ini.disable-classes">disable_classes</link>
|
||||
a été supprimé car il provoque la rupture de diverses hypothèses du moteur.
|
||||
<!-- 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>Destruction de valeurs non-tableaux</title>
|
||||
|
||||
<simpara>
|
||||
Destructurer des valeurs non-tableaux (autres que &null;) en utilisant <literal>[]</literal> ou <function>list</function>
|
||||
émet désormais un avertissement.
|
||||
<!-- 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>Avertissements liés au cast</title>
|
||||
|
||||
<simpara>
|
||||
Un avertissement est désormais émis lors du cast de flottants (ou de chaînes ressemblant
|
||||
à des flottants) en entiers s'ils ne peuvent pas être représentés comme tels. Cela affecte
|
||||
les casts explicites en int et les casts implicites en int.
|
||||
<!-- RFC: https://wiki.php.net/rfc/warnings-php-8-5#casting_out_of_range_floats_to_int -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Un avertissement est désormais émis lors du cast de NAN vers d'autres types.
|
||||
<!-- 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> lève désormais une <classname>ValueError</classname>
|
||||
lorsque <parameter>$block_size</parameter> n'est pas compris entre 1 et 9.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>bzcompress</function> lève désormais une <classname>ValueError</classname>
|
||||
lorsque <parameter>$work_factor</parameter> n'est pas compris entre 0 et 250.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.dom">
|
||||
<title>DOM</title>
|
||||
|
||||
<simpara>
|
||||
Cloner un <classname>DOMNamedNodeMap</classname>,
|
||||
<classname>DOMNodeList</classname>, <classname>Dom\NamedNodeMap</classname>,
|
||||
<classname>Dom\NodeList</classname>, <classname>Dom\HTMLCollection</classname>,
|
||||
et <classname>Dom\DtdNamedNodeMap</classname> échoue désormais.
|
||||
Cela n'a jamais réellement abouti à un objet fonctionnel, donc aucun impact n'est attendu.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.fileinfo">
|
||||
<title>FileInfo</title>
|
||||
|
||||
<simpara>
|
||||
<function>finfo_file</function> et <methodname>finfo::file</methodname>
|
||||
lèvent désormais une <exceptionname>ValueError</exceptionname> à la place de
|
||||
<exceptionname>TypeError</exceptionname> lorsque <parameter>$filename</parameter>
|
||||
contient des octets nuls.
|
||||
Cela aligne le type d'erreur levée pour être cohérent avec le reste du
|
||||
langage.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
L'extension nécessite désormais au moins ICU 57.1.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<methodname>IntlDateFormatter::setTimeZone</methodname>/<function>datefmt_set_timezone</function>
|
||||
lèvent désormais une <exceptionname>IntlException</exceptionname> en cas de classes non initialisées
|
||||
ou d'échecs de clonage.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Toutes les méthodes <classname>Locale</classname> lèvent désormais une
|
||||
<exceptionname>ValueError</exceptionname> lorsque l'argument locale contient des octets nuls.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Le comportement de <constant>Collator::SORT_REGULAR</constant> en ce qui concerne
|
||||
la gestion des chaînes numériques est désormais aligné sur le comportement de
|
||||
<constant>SORT_REGULAR</constant> dans ext/standard.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.ldap">
|
||||
<title>LDAP</title>
|
||||
|
||||
<simpara>
|
||||
<function>ldap_get_option</function> et <function>ldap_set_option</function>
|
||||
lèvent désormais une <exceptionname>ValueError</exceptionname> lorsqu'une option invalide est passée.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.mbstring">
|
||||
<title>MBString</title>
|
||||
|
||||
<simpara>
|
||||
Les tables de données Unicode ont été mises à jour vers Unicode 17.0
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.mysqli">
|
||||
<title>MySQLi</title>
|
||||
|
||||
<simpara>
|
||||
L'appel au constructeur mysqli sur un objet déjà construit
|
||||
n'est désormais plus possible et génère une <exceptionname>Error</exceptionname>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.odbc">
|
||||
<title>ODBC</title>
|
||||
|
||||
<simpara>
|
||||
ODBC suppose désormais qu'au moins la fonctionnalité ODBC 3.5 est disponible.
|
||||
La définition ODBCVER et les indicateurs du système de construction pour la contrôler ont été supprimés.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
ODBC ne dispose plus d'indicateurs de construction pour construire avec des pilotes spécifiques (sauf
|
||||
pour DB2) et supprime les cas spéciaux pour ces pilotes. Il est fortement
|
||||
recommandé d'utiliser un gestionnaire de pilotes comme iODBC ou unixODBC sur les systèmes non Windows.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.opcache">
|
||||
<title>Opcache</title>
|
||||
|
||||
<simpara>
|
||||
L'extension Opcache est désormais toujours intégrée dans le binaire PHP et toujours
|
||||
chargée.
|
||||
Les directives INI <link linkend="ini.opcache.enable">opcache.enable</link>
|
||||
et <link linkend="ini.opcache.enable-cli">opcache.enable_cli</link> sont toujours
|
||||
prises en compte.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Les options de configuration <option role="configure">--enable-opcache</option>/<option role="configure">--disable-opcache</option>
|
||||
ont été supprimées, et la compilation ne produit plus les fichiers <filename>opcache.so</filename>
|
||||
ou <filename>php_opcache.dll</filename>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
L'utilisation des directives INI <literal>zend_extension=opcache.so</literal> ou
|
||||
<literal>zend_extension=php_opcache.dll</literal>
|
||||
émettra un avertissement.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pcntl">
|
||||
<title>PCNTL</title>
|
||||
|
||||
<simpara>
|
||||
<function>pcntl_exec</function> lève désormais une <exceptionname>ValueError</exceptionname>
|
||||
lorsque les entrées du paramètre <parameter>$args</parameter> contiennent des octets nuls.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>pcntl_exec</function> lève désormais une <exceptionname>ValueError</exceptionname>
|
||||
lorsque les entrées ou les clés du paramètre <parameter>$env_vars</parameter>
|
||||
contiennent des octets nuls.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pcre">
|
||||
<title>PCRE</title>
|
||||
|
||||
<simpara>
|
||||
L'extension est compilée sans l'option semi-dépréciée
|
||||
PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK.
|
||||
<!-- https://github.com/PCRE2Project/pcre2/issues/736#issuecomment-2754024651 -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pdo">
|
||||
<title>PDO</title>
|
||||
|
||||
<simpara>
|
||||
Les arguments du constructeur définis en conjonction avec
|
||||
<constant>PDO::FETCH_CLASS</constant> suivent désormais la sémantique habituel de CUFA
|
||||
(<function>call_user_func_array</function>).
|
||||
Cela signifie que les clés de chaîne agiront comme des arguments nommés.
|
||||
De plus, l'encapsulation automatique pour les arguments par valeur passés à un paramètre par référence
|
||||
a été supprimée, et l'habituel <constant>E_WARNING</constant>
|
||||
à ce sujet est désormais émis.
|
||||
Pour passer une variable par référence à un argument de constructeur utilisez l'affectation
|
||||
de référence de valeur de tableau générale : <code>$ctor_args = [&$valByRef]</code>
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Essayer d'appeler <methodname>PDOStatement::setFetchMode</methodname> pendant
|
||||
un appel à <methodname>PDO::fetch</methodname>,
|
||||
<methodname>PDO::fetchObject</methodname>,
|
||||
<methodname>PDO::fetchAll</methodname>, par exemple en utilisant des astuces telles que
|
||||
passer l'objet statement comme argument de constructeur lors de la récupération dans un
|
||||
objet, lèvera désormais une <exceptionname>Error</exceptionname>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
La valeur des constantes <constant>PDO::FETCH_GROUP</constant>,
|
||||
<constant>PDO::FETCH_UNIQUE</constant>,
|
||||
<constant>PDO::FETCH_CLASSTYPE</constant>,
|
||||
<constant>PDO::FETCH_PROPS_LATE</constant>, et
|
||||
<constant>PDO::FETCH_SERIALIZE</constant> a changé.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Une <exceptionname>ValueError</exceptionname> est désormais levée si
|
||||
<constant>PDO::FETCH_PROPS_LATE</constant> est utilisé avec un mode de récupération
|
||||
différent de <constant>PDO::FETCH_CLASS</constant>, cohérent avec
|
||||
les autres indicateurs de récupération.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Une <exceptionname>ValueError</exceptionname> est désormais levée si
|
||||
<constant>PDO::FETCH_INTO</constant> est utilisé comme mode de récupération dans
|
||||
<methodname>PDO::fetchAll</methodname>,
|
||||
similaire à <constant>PDO::FETCH_LAZY</constant>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pdo-firebird">
|
||||
<title>PDO_FIREBIRD</title>
|
||||
|
||||
<simpara>
|
||||
Une <exceptionname>ValueError</exceptionname> est désormais levée lorsqu'on
|
||||
essaie de définir un nom de curseur trop long sur un <classname>PDOStatement</classname>
|
||||
résultant du pilote Firebird.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pdo-sqlite">
|
||||
<title>PDO_SQLITE</title>
|
||||
|
||||
<simpara>
|
||||
SQLite <methodname>PDO::quote</methodname> lève désormais une exception
|
||||
ou émet un avertissement, en fonction du mode d'erreur, si la chaîne contient
|
||||
un octet nul.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<methodname>PDO::sqliteCreateCollation</methodname> lève désormais une exception
|
||||
si le callback a un type de retour incorrect, ce qui le rend plus
|
||||
conforme au comportement de <methodname>Pdo\Sqlite::createCollation</methodname>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.posix">
|
||||
<title>POSIX</title>
|
||||
|
||||
<simpara>
|
||||
<function>posix_kill</function> lève désormais une
|
||||
<exceptionname>ValueError</exceptionname> lorsque l'argument process_id est
|
||||
inférieur ou supérieur à ce que la plateforme supporte (entier signé ou
|
||||
plage longue), <function>posix_setpgid</function> lève désormais une
|
||||
<exceptionname>ValueError</exceptionname> lorsque process_id ou
|
||||
process_group_id est inférieur à zéro ou supérieur à ce que la plateforme
|
||||
supporte.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>posix_setrlimit</function> lève désormais une
|
||||
<exceptionname>ValueError</exceptionname> lorsque les arguments hard_limit ou
|
||||
soft_limit sont inférieurs à -1 ou si soft_limit est supérieur à
|
||||
hard_limit.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<simpara>
|
||||
<methodname>ReflectionAttribute::newInstance</methodname> peut désormais lever
|
||||
des erreurs pour les attributs internes si l'attribut a été appliqué sur une cible
|
||||
invalide et que l'erreur a été différée du temps de compilation au temps d'exécution
|
||||
via l'attribut #[\DelayedTargetValidation].
|
||||
<!-- RFC: https://wiki.php.net/rfc/delayedtargetvalidation_attribute -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.session">
|
||||
<title>Session</title>
|
||||
|
||||
<simpara>
|
||||
Tenter d'écrire des données de session lorsque <varname>$_SESSION</varname> a une clé
|
||||
contenant le caractère pipe (<literal>|</literal>) émettra désormais un avertissement
|
||||
au lieu d'échouer silencieusement.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>session_start</function> est désormais plus stricte concernant l'argument options.
|
||||
Elle lève désormais une <exceptionname>ValueError</exceptionname> si
|
||||
le tableau n'est pas une table de hachage, ou une <exceptionname>TypeError</exceptionname>
|
||||
si la valeur read_and_close n'est pas d'un type valide compatible avec int.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.simplexml">
|
||||
<title>SimpleXML</title>
|
||||
|
||||
<simpara>
|
||||
Passer une expression XPath qui retourne autre chose qu'un ensemble de nœuds
|
||||
à <methodname>SimpleXMLElement::xpath</methodname> émettra désormais un avertissement
|
||||
et retournera &false;, au lieu d'échouer silencieusement et de retourner un tableau vide.
|
||||
</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>
|
||||
et <methodname>SNMP::__construct</methodname> lève désormais une
|
||||
<exceptionname>ValueError</exceptionname> lorsque le nom d'hôte
|
||||
est trop grand, contient un octet nul ou si le port est donné
|
||||
lorsqu'il est négatif ou supérieur à 65535, les valeurs de délai d'attente et de tentatives
|
||||
sont inférieures à -1 ou trop grandes.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.soap">
|
||||
<title>SOAP</title>
|
||||
|
||||
<simpara>
|
||||
<methodname>SoapClient::__doRequest</methodname> accepte désormais un nouveau
|
||||
paramètre optionnel <parameter>$uriParserClass</parameter> acceptant
|
||||
des arguments de type string ou &null;.
|
||||
&null; représente la méthode originale basée sur (<function>parse_url</function>),
|
||||
tandis que les nouveaux backends seront utilisés lorsqu'on passe soit
|
||||
<classname>Uri\Rfc3986\Uri</classname> ou <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> et <function>socket_sendto</function>
|
||||
lèvent désormais une <exceptionname>ValueError</exceptionname> si le port est inférieur
|
||||
à 0 ou supérieur à 65535, et également si l'une des entrées du tableau hints est
|
||||
indexée numériquement.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>socket_addrinfo_lookup</function> lève désormais une
|
||||
<exceptionname>TypeError</exceptionname> si l'une des valeurs de hints ne peut pas
|
||||
être convertie en int et peut lever une <exceptionname>ValueError</exceptionname> si
|
||||
l'une de ces valeurs dépasse la capacité.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>socket_set_option</function> avec les options
|
||||
<constant>MCAST_LEAVE_GROUP</constant>/<constant>MCAST_LEAVE_SOURCE_GROUP</constant>
|
||||
lève désormais une exception si la valeur n'est pas un objet ou un tableau valide.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>socket_set_option</function> avec le contexte multicast lève désormais une
|
||||
<exceptionname>ValueError</exceptionname> lorsque le socket créé n'est pas de la famille
|
||||
<constant>AF_INET</constant>/<constant>AF_INET6</constant>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.spl">
|
||||
<title>SPL</title>
|
||||
|
||||
<simpara>
|
||||
<classname>ArrayObject</classname> n'accepte plus les enums, car la modification des
|
||||
<property>$name</property> ou <property>$value</property> peut casser
|
||||
les hypothèses du moteur.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Le paramètre <parameter>$length</parameter> de
|
||||
la fonction <methodname>SplFileObject::fwrite</methodname>
|
||||
est désormais nullable.
|
||||
La valeur par défaut est passée de <literal>0</literal> à &null;.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.standard">
|
||||
<title>Standard</title>
|
||||
|
||||
<simpara>
|
||||
L'utilisation d'une fonction de la famille printf avec un formatteur qui ne spécifiait pas la
|
||||
précision réinitialisait incorrectement la précision au lieu de la traiter
|
||||
comme une précision 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> lève désormais une
|
||||
<exceptionname>ValueError</exceptionname> si la configuration contient une
|
||||
valeur invalide ou tente de définir une entrée interne en lecture seule,
|
||||
et une <exceptionname>TypeError</exceptionname> si une clé de configuration n'est pas une
|
||||
chaîne.
|
||||
</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: Fan2Shrek Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration85.new-classes" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Nouvelles classes et interfaces</title>
|
||||
|
||||
<sect2 xml:id="migration85.new-classes.core">
|
||||
<title>Core</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
|
||||
-->
|
||||
498
appendices/migration85/new-features.xml
Normal file
498
appendices/migration85/new-features.xml
Normal file
@@ -0,0 +1,498 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Fan2Shrek Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration85.new-features" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Nouvelle fonctionnalités</title>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.core">
|
||||
<title>PHP Core</title>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.pipe-operator">
|
||||
<title>Opérateur pipe</title>
|
||||
|
||||
<simpara>
|
||||
Ajout de l'<link linkend="language.operators.functional">opérateur pipe
|
||||
(<literal>|></literal>)</link>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/pipe-operator-v3 -->
|
||||
</simpara>
|
||||
|
||||
<informalexample>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$result = "Hello World" |> strlen(...);
|
||||
print $result . PHP_EOL; // Affiche "11"
|
||||
]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.closures-in-constexpr">
|
||||
<title>Fermeture dans les expressions constantes</title>
|
||||
|
||||
<para>
|
||||
Ajout du support pour <link linkend="class.closure">Closures</link> et
|
||||
<link linkend="functions.first_class_callable_syntax">callable de première classes</link>
|
||||
dans les expressions constantes. Cela inclus :
|
||||
|
||||
<simplelist>
|
||||
<member>Paramètres d'attribut.</member>
|
||||
<member>Valeurs par défaut des propriétés et des paramètres.</member>
|
||||
<member>Constantes et constantes de classe.</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>L'attribut #[\NoDiscard]</title>
|
||||
|
||||
<simpara>
|
||||
Ajout de l'attribut <classname>NoDiscard</classname> pour indiquer que la valeur de retour d'une
|
||||
fonction est importante et doit être utilisée.
|
||||
<!-- RFC: https://wiki.php.net/rfc/marking_return_value_as_important -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Par ailleurs, ajout du cast <literal>(void)</literal> pour indiquer que le fait de ne pas utiliser une valeur est intentionnel.
|
||||
Le cast <literal>(void)</literal> n'a pas d'effet sur l'exécution du programme en soi, mais
|
||||
il peut être utilisé pour supprimer les avertissements émis par <code>#[\NoDiscard]</code> et éventuellement
|
||||
aussi les diagnostics émis par des IDE externes ou des outils d'analyse statique.
|
||||
<!-- 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;
|
||||
}
|
||||
|
||||
// Attention : La valeur de retour de la fonction concat() doit être utilisée ou
|
||||
// intentionnellement ignorée en la castant en (void) dans xxx.php
|
||||
concat("a", "b");
|
||||
|
||||
// Aucun avertissement, car la valeur de retour est utilisée par l'affectation.
|
||||
$results = concat("a", "b");
|
||||
|
||||
// Aucun avertissement, car le cast (void) est utilisé.
|
||||
(void)concat("a", "b");
|
||||
]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.attributes-on-constants">
|
||||
<title>Attributes sur les constantes</title>
|
||||
|
||||
<simpara>
|
||||
Ajout du support des attributes sur les constantes non liées à une classe au moment de la compilation
|
||||
(par ex. <code>const MA_CONST = 1;</code> plutôt que
|
||||
<code>define('MA_CONST', 1);</code>).
|
||||
<!-- RFC: https://wiki.php.net/rfc/attributes-on-constants -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
L'attribut <classname>Deprecated</classname> peut désormais être utilisé sur les constantes.
|
||||
<!-- RFC: https://wiki.php.net/rfc/attributes-on-constants -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.delayedtargetvalidation-attribute">
|
||||
<title>L'attribut <code>#[\DelayedTargetValidation]</code></title>
|
||||
|
||||
<simpara>
|
||||
Le nouvel attribut <classname>DelayedTargetValidation</classname> peut être utilisé
|
||||
pour supprimer les erreurs de compilation provenant des attributs du core (ou des extensions) qui sont
|
||||
utilisés sur des cibles invalides. Ces erreurs sont plutôt signalées à l'exécution si et
|
||||
quand <methodname>ReflectionAttribute::newInstance</methodname> est appelé.
|
||||
<!-- RFC: https://wiki.php.net/rfc/delayedtargetvalidation_attribute -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.override-for-properties">
|
||||
<title>L'attribut <code>#[\Override]</code> pour les propriétés</title>
|
||||
|
||||
<simpara>
|
||||
L'attribut <classname>Override</classname> peut désormais être appliqué aux propriétés.
|
||||
<!-- RFC: https://wiki.php.net/rfc/override_properties -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.static-aviz">
|
||||
<title>Visibilité asymétrique statique</title>
|
||||
|
||||
<simpara>
|
||||
Ajout su support de <link linkend="language.oop5.visibility-members-aviz">visibilité
|
||||
asymétriques</link> pour les propriétés statiques.
|
||||
<!-- RFC: https://wiki.php.net/rfc/static-aviz -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.backtraces-for-fatal-errors">
|
||||
<title>Retour de trace pour les erreurs fatales</title>
|
||||
|
||||
<simpara>
|
||||
Les erreurs fatales (tel que un dépassement du temps d'exécution maximum)
|
||||
incluent désormais une trace de retour.
|
||||
<!-- RFC: https://wiki.php.net/rfc/error_backtraces_v2 -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.final-property-promotion">
|
||||
<title>Promotion du constructeur pour les propriétés finales</title>
|
||||
|
||||
<simpara>
|
||||
La <link linkend="language.oop5.decon.constructor.promotion">Promotion
|
||||
des propriétés du constructeur</link> peut désormais être utilisée pour les propriétés finales.
|
||||
<!-- RFC: https://wiki.php.net/rfc/final_promotion -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.casts-in-constexpr">
|
||||
<title>Cast dans les expressions constantes</title>
|
||||
|
||||
<simpara>
|
||||
Ajout du support des casts dans les expressions constantes.
|
||||
</simpara>
|
||||
|
||||
<informalexample>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
const T1 = (int) 0.3; // Avant: "Fatal error: Constant expression contains invalid operations"
|
||||
print T1 . PHP_EOL; // Affiche "0"
|
||||
]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.new-features.core.clone-function">
|
||||
<title>Fonction clone</title>
|
||||
|
||||
<simpara>
|
||||
La <link linkend="language.oop5.cloning">construction de langage clone</link>
|
||||
est désormais une fonction et prend en charge la réaffectation des propriétés (readonly) lors
|
||||
du clonage via le nouveau paramètre <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>
|
||||
Ajout du support pour
|
||||
<link linkend="class.curlsharepersistenthandle">gestionnaires de partage</link>
|
||||
qui sont persistés à travers plusieurs requêtes PHP, permettant en toute sécurité
|
||||
une réutilisation plus efficace des connexions.
|
||||
<!-- RFC: https://wiki.php.net/rfc/curl_share_persistence_improvement -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout du support pour <constant>CURLINFO_USED_PROXY</constant> (libcurl >= 8.7.0),
|
||||
<constant>CURLINFO_HTTPAUTH_USED</constant>,
|
||||
et <constant>CURLINFO_PROXYAUTH_USED</constant> (libcurl >= 8.12.0)
|
||||
à la fonction <function>curl_getinfo</function>.
|
||||
Lorsque <function>curl_getinfo</function> renvoie un tableau, les mêmes informations
|
||||
sont disponibles sous les clés <literal>"used_proxy"</literal>,
|
||||
<literal>"httpauth_used"</literal>, et <literal>"proxyauth_used"</literal>.
|
||||
<constant>CURLINFO_USED_PROXY</constant> reçoit la valeur zéro si aucun proxy n'a été utilisé lors du
|
||||
transfert précédent ou une valeur non nulle si un proxy a été utilisé.
|
||||
<constant>CURLINFO_HTTPAUTH_USED</constant> et
|
||||
<constant>CURLINFO_PROXYAUTH_USED</constant> reçoivent des masques de bits
|
||||
indiquant les méthodes d'authentification HTTP et proxy qui ont été
|
||||
utilisées lors de la requête précédente.
|
||||
Voir les constantes <constant>CURLAUTH_<replaceable>*</replaceable></constant> pour
|
||||
les valeurs possibles.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout de l'option Curl <constant>CURLOPT_INFILESIZE_LARGE</constant>, qui est un remplacement sûr
|
||||
pour <constant>CURLOPT_INFILESIZE</constant>. Sur certains systèmes,
|
||||
<constant>CURLOPT_INFILESIZE</constant> n'accepte qu'un entier signé 32 bits comme
|
||||
taille de fichier (2,0 Gio) même sur les systèmes 64 bits.
|
||||
<constant>CURLOPT_INFILESIZE_LARGE</constant> accepte la plus grande valeur entière
|
||||
the system can handle.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout des valeurs <constant>CURLFOLLOW_OBEYCODE</constant>,
|
||||
<constant>CURLFOLLOW_FIRSTONLY</constant> et <constant>CURLFOLLOW_ALL</constant>
|
||||
pour l'option <constant>CURLOPT_FOLLOWLOCATION</constant>
|
||||
de la fonction <function>curl_setopt</function>.
|
||||
<constant>CURLFOLLOW_OBEYCODE</constant> pour suivre plus strictement en ce qui concerne
|
||||
les redirections si elles sont autorisées.
|
||||
<constant>CURLFOLLOW_FIRSTONLY</constant> pour ne suivre que la première redirection, ainsi
|
||||
si une redirection de suivi existe, elle ne sera pas suivie davantage.
|
||||
<constant>CURLFOLLOW_ALL</constant> est équivalent à définir
|
||||
<constant>CURLOPT_FOLLOWLOCATION</constant> sur true.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout du support pour <constant>CURLINFO_CONN_ID</constant> (libcurl >= 8.2.0)
|
||||
à la fonction <function>curl_getinfo</function>. Cette constante permet de récupérer
|
||||
l'ID unique de la connexion utilisée par un transfert cURL. Elle est principalement
|
||||
utile lorsque la réutilisation de connexion ou la logique de pool de connexions est nécessaire dans
|
||||
les applications au niveau PHP. Lorsque <function>curl_getinfo</function> renvoie un tableau,
|
||||
cette valeur est disponible sous la clé <literal>"conn_id"</literal>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout du support pour <constant>CURLINFO_QUEUE_TIME_T</constant> (libcurl >= 8.6.0)
|
||||
à la fonction <function>curl_getinfo</function>. Cette constante permet de récupérer
|
||||
le temps (en microsecondes) que la requête a passé dans la file d'attente de connexion
|
||||
de libcurl avant d'être envoyée.
|
||||
Cette valeur peut également être récupérée en passant
|
||||
<constant>CURLINFO_QUEUE_TIME_T</constant> au paramètre <parameter>option</parameter>
|
||||
de <function>curl_getinfo</function>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout du support pour <constant>CURLOPT_SSL_SIGNATURE_ALGORITHMS</constant>
|
||||
pour spécifier les algorithmes de signature à utiliser pour TLS.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.dom">
|
||||
<title>DOM</title>
|
||||
|
||||
<simpara>
|
||||
Ajouter de <property>Dom\Element::$outerHTML</property>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout de la propriété <property>$children</property> aux
|
||||
implémentations de <interfacename>Dom\ParentNode</interfacename>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.exif">
|
||||
<title>EXIF</title>
|
||||
|
||||
<simpara>
|
||||
Ajout du support pour les tags Exif <literal>OffsetTime*</literal>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout du support pour HEIF/HEIC.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.filter">
|
||||
<title>Filter</title>
|
||||
|
||||
<simpara>
|
||||
Ajout du nouveau drapeau <constant>FILTER_THROW_ON_FAILURE</constant> qui peut être
|
||||
passé aux fonctions de filtrage et qui forcera le déclenchement d'une exception
|
||||
lorsque la validation échoue.
|
||||
Le nouveau drapeau ne peut pas être combiné avec
|
||||
<constant>FILTER_NULL_ON_FAILURE</constant>; essayer de le faire entraînera
|
||||
en une <exceptionname>TypeError</exceptionname> levée.
|
||||
<!-- RFC: https://wiki.php.net/rfc/filter_throw_on_failure -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
Ajout des constantes de classes <constant>NumberFormatter::CURRENCY_ISO</constant>,
|
||||
<constant>NumberFormatter::CURRENCY_PLURAL</constant>,
|
||||
<constant>NumberFormatter::CASH_CURRENCY</constant>,
|
||||
et <constant>NumberFormatter::CURRENCY_STANDARD</constant>
|
||||
pour divers styles de formatage des devises.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout de <methodname>Locale::addLikelySubtags</methodname> et
|
||||
<methodname>Locale::minimizeSubtags</methodname> pour gérer les tags probables
|
||||
sur une locale donnée.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout de la classe <classname>IntlListFormatter</classname> pour formater, ordonner,
|
||||
et ponctuer une liste d'éléments avec une locale donnée, les opérandes
|
||||
<constant>IntlListFormatter::TYPE_AND</constant>,
|
||||
<constant>IntlListFormatter::TYPE_OR</constant>,
|
||||
<constant>IntlListFormatter::TYPE_UNITS</constant> et les longueurs
|
||||
<constant>IntlListFormatter::WIDTH_WIDE</constant>,
|
||||
<constant>IntlListFormatter::WIDTH_SHORT</constant> et
|
||||
<constant>IntlListFormatter::WIDTH_NARROW</constant>.
|
||||
Il est supporté à partir de icu 67.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.pdo-sqlite">
|
||||
<title>PDO_Sqlite</title>
|
||||
|
||||
<simpara>
|
||||
Ajout des constantes de classes <constant>Pdo\Sqlite::ATTR_BUSY_STATEMENT</constant>
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout des constantes de classes <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>
|
||||
Ajout de l'attribut de connexion <constant>Pdo\Sqlite::ATTR_TRANSACTION_MODE</constant>
|
||||
avec les valeurs possibles <constant>Pdo\Sqlite::TRANSACTION_MODE_DEFERRED</constant>,
|
||||
<constant>Pdo\Sqlite::TRANSACTION_MODE_IMMEDIATE</constant>,
|
||||
et <constant>Pdo\Sqlite::TRANSACTION_MODE_EXCLUSIVE</constant>,
|
||||
permettant de configurer le mode de transaction à utiliser lors de l'appel de beginTransaction().
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.session">
|
||||
<title>Session</title>
|
||||
|
||||
<simpara>
|
||||
<function>session_set_cookie_params</function>,
|
||||
<function>session_get_cookie_params</function>,
|
||||
et <function>session_start</function> supporte désormais les cookies partitionnés
|
||||
avec la clé <literal>"partitioned"</literal>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/CHIPS -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.soap">
|
||||
<title>SOAP</title>
|
||||
|
||||
<simpara>
|
||||
Les cas d'énumération sont désormais inclus dans <methodname>SoapClient::__getTypes</methodname>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout du support de l'attribut xml:lang du texte Reason de Soap 1.2.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
La signature de <methodname>SoapFault::__construct</methodname> et
|
||||
<methodname>SoapServer::fault</methodname> inclut désormais un paramètre
|
||||
optionnel <parameter>$lang</parameter>.
|
||||
Ceci résout la compatibilité avec les clients SOAP .NET.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.standard">
|
||||
<title>Standard</title>
|
||||
|
||||
<simpara>
|
||||
<function>mail</function> renvoie désormais l'erreur réelle de sendmail et détecte
|
||||
si le processus sendmail a été terminé de manière inattendue.
|
||||
Dans de tels cas, un avertissement est émis et la fonction renvoie false.
|
||||
Auparavant, ces erreurs étaient silencieusement ignorées.
|
||||
Ce changement n'affecte que le transport sendmail.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>getimagesize</function> supporte désormais les images HEIF/HEIC.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>getimagesize</function> supporte désormais les images SVG lorsque l'extension ext-libxml
|
||||
est également chargée.
|
||||
De même, <function>image_type_to_extension</function> et
|
||||
<function>image_type_to_mime_type</function>
|
||||
gèrent désormais également IMAGETYPE_SVG.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Le tableau renvoyé par <function>getimagesize</function> contient désormais deux entrées supplémentaires :
|
||||
<literal>"width_unit"</literal> et <literal>"height_unit"</literal> pour indiquer dans
|
||||
quelles unités les dimensions sont exprimées. Ces unités sont px par défaut. Elles ne sont pas
|
||||
nécessairement les mêmes (juste pour donner un exemple : l'une peut être en cm et l'autre en px).
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>setcookie</function> et <function>setrawcookie</function> supportent désormais la
|
||||
clé <literal>"partitioned"</literal>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/CHIPS -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.uri">
|
||||
<title>URI</title>
|
||||
|
||||
<simpara>
|
||||
Une extension uri toujours activée a été ajoutée et peut être utilisée pour gérer
|
||||
les URI et les URL conformément à la RFC 3986 et à WHATWG URL.
|
||||
<!-- RFC: https://wiki.php.net/rfc/url_parsing_api -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.xsl">
|
||||
<title>XSL</title>
|
||||
|
||||
<simpara>
|
||||
L'argument <parameter>$namespace</parameter> de <methodname>XSLTProcessor::getParameter</methodname>,
|
||||
<methodname>XSLTProcessor::setParameter</methodname> et
|
||||
<methodname>XSLTProcessor::removeParameter</methodname> fonctionne désormais réellement
|
||||
au lieu d'être traité comme vide.
|
||||
Cela ne fonctionne que si l'argument <parameter>$name</parameter> n'utilise pas la notation Clark et n'est pas un
|
||||
QName car dans ces cas, l'espace de noms est pris à partir de l'href ou du préfixe de l'espace
|
||||
de noms respectivement.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-features.zlib">
|
||||
<title>Zlib</title>
|
||||
|
||||
<simpara>
|
||||
<function>flock</function> est désormais pris en charge sur les flux zlib. Auparavant,
|
||||
cela échouait toujours à effectuer toute action de verrouillage.
|
||||
</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: Fan2Shrek Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration85.new-functions">
|
||||
<title>Nouvelles Fonctions</title>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.core">
|
||||
<title>Core</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>Standard</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
|
||||
-->
|
||||
628
appendices/migration85/other-changes.xml
Normal file
628
appendices/migration85/other-changes.xml
Normal file
@@ -0,0 +1,628 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Fan2Shrek Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration85.other-changes">
|
||||
<title>Autres changements</title>
|
||||
|
||||
<sect2 xml:id="migration85.other-changes.core">
|
||||
<title>Core changes</title>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.core.core">
|
||||
<title>Core</title>
|
||||
|
||||
<simpara>
|
||||
Le minuteur haute résolution (<function>hrtime</function>) sur macOS
|
||||
utilise désormais l'API recommandée
|
||||
<code>clock_gettime_nsec_np(CLOCK_UPTIME_RAW)</code> au lieu de
|
||||
<code>mach_absolute_time()</code>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.core.cgi-cli">
|
||||
<title>CGI/CLI</title>
|
||||
|
||||
<simpara>
|
||||
L'option <option>-z</option> ou <option>--zend-extension</option>
|
||||
a été supprimée car elle n'était pas fonctionnelle.
|
||||
Utilisez plutôt <option>-d zend_extension=[chemin]</option>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.core.pdo-odbc">
|
||||
<title>PDO_ODBC</title>
|
||||
|
||||
<simpara>
|
||||
Le comportement de récupération pour les colonnes plus grandes a été modifié. Plutôt que
|
||||
de récupérer des blocs de 256 octets, PDO_ODBC essaiera de récupérer une taille de bloc plus grande ;
|
||||
actuellement, il s'agit de la taille de la page moins la surcharge de la chaîne. Les pilotes qui
|
||||
renvoient SQL_NO_TOTAL dans SQLGetData sont également mieux gérés.
|
||||
Cela devrait améliorer la compatibilité et les performances.
|
||||
<!-- See: GH-10809, GH-10733 -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.other-changes.sapi">
|
||||
<title>Changements dans les modules SAPI</title>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.sapi.cli">
|
||||
<title>CLI</title>
|
||||
|
||||
<simpara>
|
||||
Tenter de définir un titre de processus trop long avec
|
||||
<function>cli_set_process_title</function> échouera désormais au lieu de
|
||||
tronquer silencieusement le titre donné.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Une nouvelle option <option>--ini=diff</option> a été ajoutée pour afficher les paramètres INI
|
||||
modifiés par rapport à la valeur par défaut intégrée.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.sapi.fpm">
|
||||
<title>FPM</title>
|
||||
|
||||
<simpara>
|
||||
FPM avec httpd ProxyPass décode éventuellement le chemin complet du script. Ajout du paramètre INI
|
||||
<!-- <link linkend="ini.fastcgi.script_path_encoded"-->fastcgi.script_path_encoded<!-- </link> -->
|
||||
pour empêcher ce nouveau comportement.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
La limite du journal d'accès FPM respecte désormais la valeur de <link linkend="log-limit">log_limit</link>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.other-changes.functions">
|
||||
<title>Fonctions modifiées</title>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
<function>grapheme_extract</function> assigne correctement la valeur
|
||||
<parameter>$next</parameter> lorsqu'il saute des octets de départ invalides.
|
||||
Auparavant, il y avait des cas où il pointait vers le début de la
|
||||
limite du grapheme au lieu de la fin.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>transliterator_get_error_code</function>,
|
||||
<function>transliterator_get_error_message</function>,
|
||||
<methodname>TransLiterator::getErrorCode</methodname>,
|
||||
et <methodname>TransLiterator::getErrorMessage</methodname>
|
||||
ne renvoient plus &false;? Renvoyer &false;
|
||||
n'était en fait jamais possible.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Les fonctions suivantes supportent désormais un argument <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> et
|
||||
<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> accepte désormais une connexion &null;,
|
||||
comme <function>ldap_set_option</function>, pour permettre la récupération des
|
||||
options globales.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.libxml">
|
||||
<title>libxml</title>
|
||||
|
||||
<simpara>
|
||||
<function>libxml_set_external_entity_loader</function> a désormais un type de retour
|
||||
formel de <type>true</type>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.openssl">
|
||||
<title>OpenSSL</title>
|
||||
|
||||
<simpara>
|
||||
<function>openssl_public_encrypt</function> et
|
||||
<function>openssl_private_decrypt</function> ont un nouveau paramètre
|
||||
<parameter>$digest_algo</parameter> qui permet de spécifier l'algorithme
|
||||
de hachage pour le padding OAEP.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>openssl_sign</function> et <function>openssl_verify</function>
|
||||
ont un nouveau paramètre <parameter>$padding</parameter> pour permettre l'utilisation d'un
|
||||
padding RSA PSS plus sécurisé.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Le paramètre <parameter>$cipher_algo</parameter> de <function>openssl_cms_encrypt</function>
|
||||
peut être une chaîne avec le nom du chiffrement.
|
||||
Cela permet d'utiliser plus d'algorithmes, y compris les algorithmes de chiffrement
|
||||
AES GCM pour les données enveloppées authentifiées.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.pcntl">
|
||||
<title>PCNTL</title>
|
||||
|
||||
<simpara>
|
||||
<function>pcntl_exec</function> a désormais un type de retour formel de
|
||||
<type>false</type>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>pcntl_waitid</function> prend un argument supplémentaire resource_usage
|
||||
pour recueillir diverses métriques spécifiques à la plateforme sur le processus enfant.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.pdo-pgsql">
|
||||
<title>PDO_PGSQL</title>
|
||||
|
||||
<simpara>
|
||||
<methodname>Pdo\Pgsql::copyFromArray</methodname> supporte désormais les entrées de type <type>iterable</type>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<methodname>Pdo\Pgsql::setAttribute</methodname> et
|
||||
<methodname>Pdo\Pgsql::prepare</methodname> supportent la définition de
|
||||
<constant>PDO::ATTR_PREFETCH</constant> à 0, ce qui active le mode de récupération paresseuse.
|
||||
Dans ce mode, les instructions ne peuvent pas être exécutées en parallèle.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.pgsql">
|
||||
<title>PostgreSQL</title>
|
||||
|
||||
<simpara>
|
||||
<function>pg_copy_from</function> supporte désormais les entrées de type <type>iterable</type>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>pg_connect</function> vérifie si l'argument connection_string
|
||||
contient un octet nul.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>pg_close_stmt</function> vérifie si l'argument statement_name
|
||||
contient un octet nul.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.posix">
|
||||
<title>POSIX</title>
|
||||
|
||||
<simpara>
|
||||
<function>posix_ttyname</function> définit last_error à EBADF lorsqu'il rencontre
|
||||
un descripteur de fichier invalide.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>posix_isatty</function> génère un message <constant>E_WARNING</constant>
|
||||
lorsqu'il rencontre un descripteur de fichier invalide.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>posix_fpathconf</function> vérifie les descripteurs de fichiers invalides et
|
||||
définit last_error à EBADF et génère un <constant>E_WARNING</constant>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<simpara>
|
||||
La sortie de <methodname>ReflectionClass::__toString</methodname> pour
|
||||
les enums a changé pour mieux indiquer que la classe est un enum, et que
|
||||
les cas d'enum sont des cas d'enum plutôt que des constantes de classe normales.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
La sortie de <methodname>ReflectionProperty::__toString</methodname> pour
|
||||
les propriétés avec hooks a changé pour indiquer quels hooks la propriété possède,
|
||||
que ces hooks soit finals, et si la propriété est virtuelle.
|
||||
Cela affecte également la sortie de <methodname>ReflectionClass::__toString</methodname>
|
||||
lorsqu'une classe contient des propriétés avec hooks.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.sockets">
|
||||
<title>Sockets</title>
|
||||
|
||||
<simpara>
|
||||
<function>socket_create</function>/<function>socket_bind</function> peuvent
|
||||
créer des sockets de la famille <constant>AF_PACKET</constant>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>socket_getsockname</function> obtient l'index de l'interface et sa
|
||||
représentation sous forme de chaîne avec un socket <constant>AF_PACKET</constant>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.functions.zlib">
|
||||
<title>Zlib</title>
|
||||
|
||||
<simpara>
|
||||
L'arguement <parameter>$use_include_path</parameter> des fonctions
|
||||
<function>gzfile</function>, <function>gzopen</function> et
|
||||
<function>readgzfile</function> a été changé
|
||||
de <type>int</type> à <type>boolean</type>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Les fonctions <function>gzfile</function>,
|
||||
<function>gzopen</function> et <function>readgzfile</function> ont désormais
|
||||
le comportement attendu avec le contexte de flux par défaut.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.other-changes.extensions">
|
||||
<title>Autres changements aux l'extensions</title>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.curl">
|
||||
<title>cURL</title>
|
||||
|
||||
<simpara>
|
||||
<function>curl_setopt</function> avec la valeur d'option
|
||||
<constant>CURLOPT_FOLLOWLOCATION</constant>
|
||||
n'est plus traitée comme un booléen mais comme un entier pour gérer
|
||||
<constant>CURLFOLLOW_OBEYCODE</constant> et
|
||||
<constant>CURLFOLLOW_FIRSTONLY</constant>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.fileinfo">
|
||||
<title>Fileinfo</title>
|
||||
|
||||
<simpara>
|
||||
Mise à jour de file de 5.45 à 5.46.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Le type de retour de <function>finfo_open</function> a été changé en
|
||||
<type>finfo</type> au lieu de <type>resource</type>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
Le mécanisme d'erreur interne d'Intl a été modernisé pour indiquer plus précisément
|
||||
quel site d'appel a causé quelle erreur.
|
||||
De plus, certaines exceptions ext/date ont été encapsulées dans une
|
||||
<classname>IntlException</classname> maintenant.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.lexbor">
|
||||
<title>Lexbor</title>
|
||||
|
||||
<simpara>
|
||||
Une extension lexbor toujours activée a été ajoutée. Elle contient la bibliothèque
|
||||
lexbor qui a été séparée de <link linkend="book.dom">ext/dom</link>
|
||||
pour être réutilisée parmi d'autres extensions.
|
||||
La nouvelle extension n'est pas directement exposée à l'espace utilisateur.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.opcache">
|
||||
<title>Opcache</title>
|
||||
|
||||
<simpara>
|
||||
L'<link linkend="book.opcache">extension Opcache</link> est désormais toujours
|
||||
construite dans le binaire PHP et est toujours chargée.
|
||||
Les directives INI <link linkend="ini.opcache.enable">opcache.enable</link>
|
||||
et <link linkend="ini.opcache.enable-cli">opcache.enable_cli</link> sont
|
||||
toujours respectées.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.pcre">
|
||||
<title>PCRE</title>
|
||||
|
||||
<simpara>
|
||||
Mise à jour de pcre2lib de 10.44 à 10.46.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.pdo-sqlite">
|
||||
<title>PDO_Sqlite</title>
|
||||
|
||||
<simpara>
|
||||
Mise à jour de la version minimale prise en charge de 3.7.7 à 3.7.17.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.readline">
|
||||
<title>Readline</title>
|
||||
|
||||
<simpara>
|
||||
Les types de retour de <function>readline_add_history</function>,
|
||||
<function>readline_clear_history</function>,
|
||||
et <function>readline_callback_handler_install</function> ont été
|
||||
changés en <type>true</type>, plutôt que <type>bool</type>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.extensions.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<simpara>
|
||||
<classname>ReflectionConstant</classname> n'est plus finale.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.other-changes.ini">
|
||||
<title>Changements dans la gestion des fichiers INI</title>
|
||||
<sect3 xml:id="migration85.other-changes.ini.core">
|
||||
<title>Core</title>
|
||||
|
||||
<simpara>
|
||||
Ajout de fatal_error_backtraces pour contrôler si les erreurs fatales doivent inclure
|
||||
une trace.
|
||||
<!-- RFC: https://wiki.php.net/rfc/error_backtraces_v2 -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout de la directive INI max_memory_limit, disponible uniquement au démarrage, pour contrôler la valeur maximale
|
||||
de memory_limit pouvant être configurée au démarrage ou à l'exécution. Dépasser cette
|
||||
valeur émet un avertissement, sauf si elle est définie à -1, et définit memory_limit sur la
|
||||
valeur actuelle de max_memory_limit à la place.
|
||||
<!-- ML discussion: https://externals.io/message/127108 -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.ini.opcache">
|
||||
<title>Opcache</title>
|
||||
|
||||
<simpara>
|
||||
Ajout de opcache.file_cache_read_only pour prendre en charge un répertoire
|
||||
<link linkend="ini.opcache.file-cache">opcache.file_cache</link> en lecture seule,
|
||||
pour une utilisation avec des systèmes de fichiers en lecture seule (par exemple, des conteneurs Docker en lecture seule).
|
||||
À utiliser de préférence avec <literal>opcache.validate_timestamps=0</literal>,
|
||||
<literal>opcache.enable_file_override=1</literal>,
|
||||
et <literal>opcache.file_cache_consistency_checks=0</literal>.
|
||||
</simpara>
|
||||
|
||||
<note>
|
||||
<simpara>
|
||||
Un cache généré avec une version différente de PHP, un chemin de fichier différent,
|
||||
ou des paramètres différents (y compris les extensions chargées), peut être
|
||||
ignoré.
|
||||
</simpara>
|
||||
</note>
|
||||
|
||||
<simpara>
|
||||
La valeur par défaut de
|
||||
<link linkend="ini.opcache.jit-hot-loop">opcache.jit_hot_loop</link> est
|
||||
désormais 61 (un nombre premier) pour éviter qu'elle soit un multiple du nombre
|
||||
d'itérations de boucle.
|
||||
Il est recommandé que ce paramètre soit défini sur un nombre premier.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
La modification de <link
|
||||
linkend="ini.opcache.memory-consumption">opcache.memory_consumption</link>
|
||||
lorsque la mémoire partagée OPcache est déjà configurée signalera désormais correctement un échec
|
||||
au lieu de ne rien faire silencieusement et d'afficher des valeurs trompeuses dans PHPInfo.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.ini.openssl">
|
||||
<title>OpenSSL</title>
|
||||
|
||||
<simpara>
|
||||
Ajout de <!-- <link linkend="ini.openssl.libctx"-->openssl.libctx<!-- </link> -->
|
||||
pour sélectionner le type de contexte de la bibliothèque OpenSSL.
|
||||
Soit un libctx personnalisé pour chaque thread peut être utilisé, soit un seul
|
||||
libctx global (par défaut) est utilisé.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.other-changes.performance">
|
||||
<title>Performance</title>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.core">
|
||||
<title>Core</title>
|
||||
|
||||
<simpara>
|
||||
Suppression des OPcodes pour les comparaisons d'identité avec des booléens, en particulier
|
||||
pour le modèle <code>match(true)</code>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Ajout de la spécialisation des OPcodes pour les comparaisons <code>=== []</code> et
|
||||
<code>!== []</code>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
La création des objets exception est désormais beaucoup plus rapide.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Les parties du code qui utilisaient SSE2 ont été adaptées pour utiliser SIMD
|
||||
avec ARM NEON également.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Introduction de la machine virtuelle TAILCALL, activée par défaut lors de la compilation avec Clang>=19
|
||||
sur x86_64 ou aarch64. La machine virtuelle TAILCALL est aussi rapide que la machine virtuelle HYBRID utilisée lors
|
||||
de la compilation avec GCC. Cela rend les binaires PHP construits avec Clang>=19 aussi rapides que
|
||||
les binaires construits avec GCC. Les performances de la machine virtuelle CALL, utilisée avec d'autres
|
||||
compilateurs, se sont également considérablement améliorées.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
Désormais ne créer plus de copies de chaînes supplémentaires lors de la conversion
|
||||
des chaînes pour une utilisation dans le collateur.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.mbstring">
|
||||
<title>MBString</title>
|
||||
|
||||
<simpara>
|
||||
Les parties du code qui utilisaient SSE2 ont été adaptées pour utiliser SIMD
|
||||
avec ARM NEON également.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.opcache">
|
||||
<title>Opcache</title>
|
||||
|
||||
<simpara>
|
||||
Augmentation des performances de l'accès aux variables TLS dans le code JITé
|
||||
dans les builds Glibc.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<para>
|
||||
Augmentation des performances des méthodes suivantes :
|
||||
<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>
|
||||
Augmentation des performances des accesseurs de dimensions et des méthodes de
|
||||
<classname>SplFixedArray</classname>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.standard">
|
||||
<title>Standard</title>
|
||||
|
||||
<simpara>
|
||||
Augmentation des performances des fonctions de tableau avec des callbacks
|
||||
(<function>array_find</function>, <function>array_filter</function>,
|
||||
<function>array_map</function>, <function>usort</function>, ...).
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Augmentation des performances de <function>urlencode</function> et
|
||||
<function>rawurlencode</function>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Augmentation des performances de <function>unpack</function> avec des répétitions anonymes
|
||||
en évitant de créer des chaînes temporaires et de les reparcourir.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Augmentation des performances de <function>pack</function>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Augmentation mineure des performances de <function>array_chunk</function>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.other-changes.performance.xml">
|
||||
<title>XML</title>
|
||||
|
||||
<simpara>
|
||||
Augmentation des performances de l'accès aux propriétés de <classname>XMLReader</classname>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Augmentation des performances de <classname>XMLWriter</classname> et réduction de
|
||||
la consommation mémoire.
|
||||
</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
|
||||
-->
|
||||
96
appendices/migration85/windows-support.xml
Normal file
96
appendices/migration85/windows-support.xml
Normal file
@@ -0,0 +1,96 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: Fan2Shrek Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<sect1 xml:id="migration85.windows-support">
|
||||
<title>Support de Windows</title>
|
||||
|
||||
<sect2 xml:id="migration85.windows-support.core">
|
||||
<title>Core</title>
|
||||
|
||||
<simpara>
|
||||
Les variables de configuration <constant>PHP_VERSION</constant>,
|
||||
<constant>PHP_MINOR_VERSION</constant>, et
|
||||
<constant>PHP_RELEASE_VERSION</constant> sont désormais tout le temps numériques.
|
||||
Auparavant, elles étaient des chaînes pour les builds buildconf.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Les constructions <command>phpize</command> reflètent désormais l'arborescence
|
||||
source dans le répertoire de construction (comme cela fonctionnait déjà pour les
|
||||
constructions in-tree) ; certaines constructions d'extensions (en particulier
|
||||
lors de l'utilisation de Makefile.frag.w32) peuvent nécessiter des ajustements.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<option role="configure">--enable-sanitizer</option> est désormais disponible
|
||||
pour les constructions MSVC. Cela active l'ASan et les assertions de débogage,
|
||||
et est supporté à partir de MSVC 16.10 et Windows 10.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
L'option de configuration <option role="configure">--with-uncritical-warn-choke</option>
|
||||
pour les constructions clang n'est plus prise en charge.
|
||||
Sélectionnez les avertissements à supprimer via CFLAGS à la place.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.windows-support.com">
|
||||
<title>COM</title>
|
||||
|
||||
<simpara>
|
||||
L'extension est désormais construite en tant qu'extension partagée par défaut ; auparavant, elle était construite
|
||||
en tant qu'extension statique, bien que les binaires officiels
|
||||
Windows construisaient une extension partagée.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.windows-support.ffi">
|
||||
<title>FFI</title>
|
||||
|
||||
<simpara>
|
||||
Il n'est plus nécessaire de spécifier la bibliothèque lors de l'utilisation de
|
||||
<methodname>FFI::cdef</methodname> et <methodname>FFI::load</methodname>.
|
||||
Cependant, cette fonctionnalité de commodité ne doit pas être utilisée en production.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.windows-support.streams">
|
||||
<title>Streams</title>
|
||||
|
||||
<simpara>
|
||||
Si seules des flux de type pipe sont contenus dans le tableau <parameter>$read</parameter>,
|
||||
et que les tableaux <parameter>$write</parameter> et
|
||||
<parameter>$except</parameter> sont vides,
|
||||
<function>stream_select</function> se comporte désormais de manière similaire aux systèmes POSIX,
|
||||
c'est-à-dire que la fonction ne retourne que si au moins un pipe est prêt à être lu,
|
||||
ou après l'expiration du délai d'attente.
|
||||
Auparavant, <function>stream_select</function> retournait immédiatement,
|
||||
signalant que tous les flux étaient prêts à être lus.
|
||||
</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
|
||||
-->
|
||||
Reference in New Issue
Block a user