Files
doc-fr/appendices/migration74/other-changes.xml
2022-05-27 17:46:58 -04:00

575 lines
17 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 90242f8793566eb87ee35a989912310a7c7c132b Maintainer: girgias Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="migration74.other-changes" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Autres changements</title>
<sect2 xml:id="migration74.other-changes.performance">
<title>Amélioration des Performances</title>
<sect3 xml:id="migration74.other-changes.performance.core">
<title>Cœur de PHP</title>
<para>
Un opcode de VM spécialisé pour la fonction
<function>array_key_exists</function> a été ajouté, ceci améliore les
performances de cette fonction si elle peut être résolue statiquement.
Dans du code sous un espace de nom, ceci peut nécessiter d'écrire
<literal>\array_key_exists()</literal> ou importer explicitement la fonction.
</para>
</sect3>
<sect3 xml:id="migration74.other-changes.performance.pcre">
<title>Expressions Régulières (Compatible Perl)</title>
<para>
Quand <function>preg_match</function> en mode UTF-8 (modificateur
<literal>"u"</literal>) est appelée à plusieurs reprises sur la même &string;
(mais possiblement à différentes positions), elle ne sera vérifiée qu'une seule
fois pour la validité UTF-8.
</para>
</sect3>
</sect2>
<sect2 xml:id="migration74.other-changes.ini">
<title>Modifications Apportées à la Gestion de Fichiers INI</title>
<para>
<link linkend="ini.zend.exception-ignore-args">zend.exception_ignore_args</link>
est une nouvelle directive INI pour inclure ou exclure les arguments des
traces de pile générées par les exceptions.
</para>
<para>
<link linkend="ini.opcache.preload-user">opcache.preload_user</link> est une
nouvelle directive INI permettant de spécifier le compte utilisateur ayant
pour rôle d'exécuter le code pré-chargé (l'utilisateur root n'est pas
autorisé pour des raisons de sécurité).
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.pkg-config">
<title>Migration vers pkg-config</title>
<para>
Un nombre d'extensions a été migré pour utiliser exclusivement pkg-config
pour la détection des dépendances de bibliothèques. Généralement, ceci
signifie qu'au lieu d'utiliser
<option role="configure">--with-foo-dir=DIR</option> ou similaire seul
<option role="configure">--with-foo</option> est utilisé. Les chemins de
bibliothèques personnalisées peuvent être spécifiés soit en ajoutant des
dossiers supplémentaires à <literal>PKG_CONFIG_PATH</literal> soit en
spécifiant les options de compilations explicitement à travers
<literal>FOO_CFLAGS</literal> et <literal>FOO_LIBS</literal>.
</para>
<para>
Les extensions et SAPIs suivantes sont affectées :
</para>
<itemizedlist>
<listitem>
<simpara>CURL :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-curl</option> n'accepte plus un dossier.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Enchant :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-enchant</option> n'accepte plus un dossier.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>FPM :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-fpm-systemd</option> utilise désormais
uniquement pkg-config pour les vérifications libsystem.
La version minimale libsystemd requise est 209.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>GD :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-gd</option> devient
<option role="configure">--enable-gd</option>
(pour activer l'extension) et
<option role="configure">--with-external-gd</option>
(pour opter pour l'utilisation d'un libgd externe, plutôt que celui fourni).
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-png-dir</option> a été supprimé. libpng est requis.
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-zlib-dir</option> a été supprimé. zlib est requis.
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-freetype-dir</option> devient
<option role="configure">--with-freetype</option>
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-jpeg-dir</option> devient
<option role="configure">--with-jpeg</option>
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-webp-dir</option> devient
<option role="configure">--with-webp</option>
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-xpm-dir</option> devient
<option role="configure">--with-xpm</option>
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>IMAP :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-kerberos-systemd</option> n'accepte plus un dossier.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Intl :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-icu-dir</option> a été supprimé.
Si <option role="configure">--enable-intl</option> est passé,
alors libicu est toujours requis.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>LDAP :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-ldap-sasl</option> n'accepte plus un dossier.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Libxml :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-libxml-dir</option> a été supprimé.
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--enable-libxml</option> devient
<option role="configure">--with-libxml</option>.
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-libexpat-dir</option> a été renommé en
<option role="configure">--with-expat</option> et n'accepte plus un dossier.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Litespeed :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-litespeed</option> devient
<option role="configure">--enable-litespeed</option>.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Mbstring :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-onig</option> a été supprimé.
Sauf si <option role="configure">--disable-mbregex</option>
a été passé, libonig est requis.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>ODBC :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-iodbc</option> n'accepte plus un dossier.
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-unixODBC</option> sans un dossier utilise
désormais phg-config (préférable). Le dossier est toujours accepté pour
les anciennes versions sans libodbc.pc.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>OpenSSL :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-openssl</option> n'accepte plus un dossier.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>PCRE :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-pcre-regex</option> a été supprimé.
À la place <option role="configure">--with-external-pcre</option>
est offert pour opter pour l'utilisation d'une bibliothèque PCRE externe,
plutôt que celle fournie.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>PDO_SQLite :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-pdo-sqlite</option> n'accepte plus un dossier.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Readline :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-libedit</option> n'accepte plus un dossier.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Sodium :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-sodium</option> n'accepte plus un dossier.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>SQLite3 :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-sqlite3</option> n'accepte plus un dossier.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>XSL :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-xsl</option> n'accepte plus un dossier.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Zip :</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-libzip</option> a été supprimé.
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--enable-zip</option> devient
<option role="configure">--with-zip</option>.
</simpara>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</sect2>
<sect2 xml:id="migration74.other-changes.csv">
<title>Échappement CSV</title>
<para>
<function>fputcsv</function>,
<function>fgetcsv</function>,
<methodname>SplFileObject::fputcsv</methodname>,
<methodname>SplFileObject::fgetcsv</methodname>, et
<methodname>SplFileObject::setCsvControl</methodname>
acceptent désormais une &string; vide en tant qu'argument
<literal>$escape</literal>, qui désactive le mécanisme d'échappement
propriétaire de PHP.
</para>
<para>
Le comportement de <function>str_getcsv</function> a été ajusté en
conséquence (auparavant, une &string; vide était identique à
utiliser les valeurs par défaut).
</para>
<para>
<methodname>SplFileObject::getCsvControl</methodname> peut, par conséquent
désormais aussi retourner une &string; vide pour le troisième élément du &array;.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.filter">
<title>Filtrage de Données</title>
<para>
L'extension <link linkend="book.filter">filter</link> n'expose plus
<option role="configure">--with-pcre-dir</option> pour les builds Unix et
peut désormais être compilée de manière fiable en tant que partagé lors
de l'utilisation de <command>./configure</command>
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.gd">
<title>GD</title>
<para>
Le comportement de <function>imagecropauto</function> dans la bibliothèque
libgd fourni a été synchronisé avec celui de libgd système :
</para>
<itemizedlist>
<listitem>
<simpara>
<constant>IMG_CROP_DEFAULT</constant> ne se replie plus sur
<constant>IMG_CROP_SIDES</constant>
</simpara>
</listitem>
<listitem>
<simpara>
Le seuil de recadrage (Threshold-cropping) utilise désormais l'algorithme
de libgd système.
</simpara>
</listitem>
</itemizedlist>
<para>
La paramètre par défaut <literal>$mode</literal> de
<function>imagecropauto</function> a été modifié en
<constant>IMG_CROP_DEFAULT</constant> ; fournir <literal>-1</literal>
est désormais obsolète.
</para>
<para>
<function>imagescale</function> supporte désormais la préservation du
rapport hauteur / largeur lors de la mise à l'échelle à une hauteur fixe
en passant <literal>-1</literal> à <literal>$new_width</literal>.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.hash">
<title>HASH Message Digest Framework</title>
<para>
L'extension <link linkend="book.hash">hash</link> ne peut plus être
désactivée et fait toujours partie intégrante de n'importe quel build PHP,
similaire à l'extension <link linkend="book.datetime">date</link>.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.intl">
<title>Intl</title>
<para>
L'extension <link linkend="book.intl">intl</link> requiert désormais au moins
ICU 50.1.
</para>
<para>
<classname>ResourceBundle</classname> implémente désormais
<interfacename>Countable</interfacename>.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.ldap">
<title>Lightweight Directory Access Protocol (LDAP)</title>
<para>
Le support pour nsldap et umich_ldap a été supprimé.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.libxml">
<title>Libxml</title>
<para>
Toutes les extensions basées sur libxml nécessitent libxml 2.7.6 ou ultérieur.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.mbstring">
<title>Chaînes multioctets</title>
<para>
La bibliothèque oniguruma n'est plus fournie avec PHP, à la place libonig
doit être disponible sur le système. Alternativement
<option role="configure">--disable-mbregex</option> peut être utilisé pour
désactiver le composant mbregex.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.opcache">
<title>OPcache</title>
<para>
Les options de configurations
<option role="configure">--disable-opcache-file</option> et
<option role="configure">--enable-opcache-file</option> ont été supprimées
en faveur de la directive INI
<link linkend="ini.opcache.file-cache">opcache.file_cache</link>.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.password">
<title>Hachage de Mot de Passe</title>
<para>
Les fonctions <function>password_hash</function> et <function>password_needs_rehash</function>
acceptent désormais des &string; et &integer; nullable pour l'argument
<literal>$algo</literal>.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.pear">
<title>PEAR</title>
<para>
L'installation de PEAR (inclus PECL) n'est plus activée par défaut.
Ceci peut être explicitement activé en utilisant
<option role="configure">--with-pear</option>.
Cette option est obsolète et pourra être supprimée dans le futur.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.reflection">
<title>Reflection</title>
<para>
Les valeurs numériques des constantes de modificateur
(<literal>IS_ABSTRACT</literal>,
<literal>IS_DEPRECATED</literal>,
<literal>IS_EXPLICIT_ABSTRACT</literal>,
<literal>IS_FINAL</literal>,
<literal>IS_IMPLICIT_ABSTRACT</literal>,
<literal>IS_PRIVATE</literal>,
<literal>IS_PROTECTED</literal>,
<literal>IS_PUBLIC</literal>, et
<literal>IS_STATIC</literal>) sur les classes
<classname>ReflectionClass</classname>,
<classname>ReflectionFunction</classname>,
<classname>ReflectionMethod</classname>,
<classname>ReflectionObject</classname>, et
<classname>ReflectionProperty</classname>
ont été modifiées.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.simplexml">
<title>SimpleXML</title>
<para>
<classname>SimpleXMLElement</classname> implémente désormais
<interfacename>Countable</interfacename>.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.sqlite3">
<title>SQLite3</title>
<para>
La bibliothèque libsqlite intégrée a été supprimée. Pour compiler l'extension
<link linkend="book.sqlite3">SQLite3</link> une libsqlite3 ≥ 3.7.4 du système
est désormais requise. Pour compiler l'extension
<link linkend="ref.pdo-sqlite">PDO_SQLite</link>
une libsqlite3 ≥ 3.5.0 du système est désormais requise.
</para>
<para>
La linéarisation et délinéarisation de <classname>SQLite3</classname>,
<classname>SQLite3Stmt</classname> et <classname>SQLite3Result</classname>
est désormais explicitement interdite. Auparavant, la linéarisation
d'instances de ces classes était possible, mais la délinéarisation générait
des objets inutilisables.
</para>
<para>
La notation <literal>@param</literal> peut désormais être utilisée pour
dénoter les paramètres de requête SQL.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.zip">
<title>Zip</title>
<para>
La bibliothèque libzip intégrée a été supprimée.
Une libzip >= 0.11 du système est désormais requise pour compiler l'extension
<link linkend="book.zip">zip</link>.
</para>
</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
-->