Files
doc-fr/appendices/migration72/incompatible.xml
T
dem b24d2544e2 Fix some typos
Update appendices/migration71/other-changes.xml

Co-authored-by: George Peter Banyard <7906688+Girgias@users.noreply.github.com>

Update appendices/migration72/new-features.xml

Co-authored-by: George Peter Banyard <7906688+Girgias@users.noreply.github.com>

Update appendices/migration71/other-changes.xml

Co-authored-by: George Peter Banyard <7906688+Girgias@users.noreply.github.com>

Update appendices/migration72/new-features.xml

Co-authored-by: George Peter Banyard <7906688+Girgias@users.noreply.github.com>
2021-04-28 12:51:10 +01:00

380 lines
12 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e61d2217d58d7135abd368baa1089e58c626fbcc Maintainer: jbnahan Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="migration72.incompatible">
<title>Évolutions incompatibles avec les versions précédentes</title>
<sect2 xml:id="migration72.incompatible.number_format-no-neg-zero">
<title>Empêcher <function>number_format</function> de retourner zéro négatif</title>
<para>
Auparavant, il était possible pour la fonction
<function>number_format</function> retourne <literal>-0</literal>.
Bien que cela soit parfaitement valide conformément à la norme "IEEE 754
floating point spécification", cette bizarrerie n'était pas souhaitable
pour laffichage des nombres mis en forme sous une forme lisible par l'homme.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
var_dump(number_format(-0.01)); // maintenant affiche string(1) "0" à la place de string(2) "-0"
]]>
</programlisting>
</informalexample>
</sect2>
<sect2 xml:id="migration72.incompatible.object-array-casts">
<title>Conversion des clés numériques dans les objets et tableaux lors de cast</title>
<para>
Les clé numériques sont maintenant mieux appréhendées lors de cast
d'un tableau en objet et d'un objet en tableau (cast explicite ou par
la fonction <function>settype</function>).
</para>
<para>
Cela signifie que les clés représentées par un entier (ou un entier sous
forme de texte) d'un tableau casté en objet sont désormais accessibles :
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
// tableau vers un objet
$arr = [0 => 1];
$obj = (object)$arr;
var_dump(
$obj,
$obj->{'0'}, // désormais accessible
$obj->{0} // désormais accessible
);
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
object(stdClass)#1 (1) {
["0"]=> // désormais clé texte plutôt qu'une clé entière
int(1)
}
int(1)
int(1)
]]>
</screen>
</informalexample>
<para>
Et les clés au format entier (ou entier sous forme de texte) des objets convertis
en tableaux sont désormais accessibles :
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
// objet vers tableau
$obj = new class {
public function __construct()
{
$this->{0} = 1;
}
};
$arr = (array)$obj;
var_dump(
$arr,
$arr[0], // désormais accessible
$arr['0'] // désormais accessible
);
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
array(1) {
[0]=> // désormais clé entière plutôt qu'une clé texte
int(1)
}
int(1)
int(1)
]]>
</screen>
</informalexample>
</sect2>
<sect2 xml:id="migration72.incompatible.no-null-to-get_class">
<title>Interdire de passer &null; à <function>get_class</function></title>
<para>
Auparavant, passer &null; à la fonction <function>get_class</function>
retournait le nom de la classe en cours. Ce comportement a été supprimé,
une erreur <constant>E_WARNING</constant> est affichée à la place.
Pour retrouver le même comportement qu'avant, largument devrait
simplement être supprimé.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.warn-on-non-countable-types">
<title>Avertir lors du comptage de types non dénombrables</title>
<para>
Un <constant>E_WARNING</constant> sera émis lors de la tentative
d'utilisation de la fonction <function>count</function> sur un
type non dénombrable (cela inclut la fonction alias
<function>sizeof</function>).
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
var_dump(
count(null), // NULL is not countable
count(1), // un entier n'est pas dénombrable
count('abc'), // une chaîne n'est pas dénombrable
count(new stdclass), // un objet qui n'implémente pas l'interface Countable n'est pas dénombrable
count([1,2]) // un tableau est dénombrable
);
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d
Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d
Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d
Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d
int(0)
int(1)
int(1)
int(1)
int(2)
]]>
</screen>
</informalexample>
</sect2>
<sect2 xml:id="migration72.incompatible.hash-ext-to-objects">
<title>Remplacement ext/hash de ressources en objets</title>
<para>
Dans le cadre de la migration à long terme des ressources, lextension
<link linkend="book.hash">Hash</link> a été mise à jour pour utiliser les
objets au lieu de ressources. Le changement devrait être transparent pour
les développeurs PHP, à lexception où des vérifications avec
<function>is_resource</function>
ont été faites (il sera nécessaire de remplacer par
<function>is_object</function>).
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.ssl-tls-defaults">
<title>Améliorer les valeurs par défaut SSL/TLS</title>
<para>
Les modifications suivantes concernant les valeurs par défaut ont été apportées :
</para>
<itemizedlist>
<listitem>
<simpara>
<literal>tls://</literal> maintenant par défaut TLSv1.0 ou TLSv1.1 ou TLSv1.2
</simpara>
</listitem>
<listitem>
<simpara>
<literal>ssl://</literal> est un alias de <literal>tls://</literal>
</simpara>
</listitem>
<listitem>
<simpara>
<literal>STREAM_CRYPTO_METHOD_TLS_*</literal> constantes par défaut de
TLSv1.0 ou TLSv1.1 + TLSv1.2, à la place de TLSv1.0 uniquement.
</simpara>
</listitem>
</itemizedlist>
</sect2>
<sect2 xml:id="migration72.incompatible.gettype-on-closed-resource">
<title><function>gettype</function> valeur de retour sur les ressources fermées</title>
<para>
Auparavant, l'utilisation de <function>gettype</function> sur une ressource
fermée retournait une chaîne <literal>"unknown type"</literal>. Maintenant,
la chaîne <literal>"resource (closed)"</literal> sera retournée.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.is_object-on-incomplete_class">
<title><function>is_object</function> et <classname>__PHP_Incomplete_Class</classname></title>
<para>
Auparavant, l'utilisation de <function>is_object</function> sur la classe
<classname>__PHP_Incomplete_Class</classname> retournait &false;.
Maintenant, &true; sera retourné.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.undefined-constants">
<title>Augmentation du niveau d'erreur des constantes non définies</title>
<para>
Les références non qualifiées aux constantes non définies généreront
désormais une <constant>E_WARNING</constant> (à la place d'une <constant>E_NOTICE</constant>).
Dans la prochaine version majeure de PHP, elles généreront une exception
<classname>Error</classname>.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.windows-support">
<title>Prise en charge de Windows</title>
<para>
Les versions minimales officiellement supportées pour Windows sont Windows 7/
Server 2008 R2.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.trait-properties">
<title>Vérification des valeurs par défaut des propriétés des traits</title>
<para>
Les contrôles de compatibilité sur les valeurs par défaut des propriétés de trait n'effectueront plus la conversion.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.object-reserved-word">
<title><literal>object</literal> pour les noms de classes</title>
<para>
Le nom <literal>object</literal> était précédement soft-réservé en PHP 7.0.
Il est maintenant réservé, interdisant son utilisation comme nom de classe,
de trait ou d'interface.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.netware-support">
<title>Prise en charge de NetWare</title>
<para>
La prise en charge de NetWare a maintenant été supprimée.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.array-unique">
<title><function>array_unique</function> avec <constant>SORT_STRING</constant></title>
<para>
Alors que <function>array_unique</function> avec <constant>SORT_STRING</constant>
copiait anciennement le tableau et supprimait des éléments non uniques
(sans emballer le tableau par la suite), maintenant un nouveau tableau
est construit en ajoutant les éléments uniques.
Cela peut entraîner des index numériques différents.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.bcmod-and-floats">
<title><function>bcmod</function> change pour des nombres décimaux</title>
<para>
La fonction <function>bcmod</function> ne tronque plus les nombres
fractionnaires en entiers. En tant que tel, son comportement suit maintenant
<function>fmod</function>, plutôt que l'opérateur <literal>%</literal>.
Par exemple <literal>bcmod('4', '3.5')</literal> retourne maintenant
<literal>0.5</literal> à la place de <literal>1</literal>.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.hash-functions">
<title>Fonctions de hachage et hachages non cryptographiques</title>
<para>
Les fonctions <function>hash_hmac</function>, <function>hash_hmac_file</function>,
<function>hash_pbkdf2</function>, et <function>hash_init</function> (avec
<constant>HASH_HMAC</constant>) n'acceptent plus les hachages non cryptographiques.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.json_decode-changes">
<title>Options de la fonction <function>json_decode</function></title>
<para>
L'option <constant>JSON_OBJECT_AS_ARRAY</constant> de la fonction
<function>json_decode</function> est maintenant utilisée si le second paramètre
(assoc) est &null;. Précédemment <constant>JSON_OBJECT_AS_ARRAY</constant> a
toujours été ignoré.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.rand-mt_rand-output">
<title>Sortie de <function>rand</function> et <function>mt_rand</function></title>
<para>
Les séquences générées par <function>rand</function> et
<function>mt_rand</function> pour des cas spécifiques peuvent différer
de PHP 7.1 sur les machines 64 bits (en raison de la correction d'un bug
dans l'implémentation de la polarisation du modulo).
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.sqlsafe_mode-ini-setting">
<title>Suppression du paramètre INI <link linkend="ini.sql.safe-mode"><parameter>sql.safe_mode</parameter></link></title>
<para>
Le paramètre INI <parameter>sql.safe_mode</parameter> a maintenant été supprimé.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.date_parse_from_format">
<title>Changement dans <function>date_parse</function> et <function>date_parse_from_format</function></title>
<para>
L'élément de <literal>zone</literal> du tableau retourné par <function>date_parse</function> et
<function>date_parse_from_format</function> représente des secondes au lieu des
minutes, et son signe est inversé. Par exemple <literal>-120</literal> est
maintenant <literal>7200</literal>.
</para>
</sect2>
<sect2 xml:id="migration72.incompatible.cookie-decode">
<title>Incoming Cookies</title>
<para>
Depuis PHP 7.2.34, les <emphasis>noms</emphasis> des cookies entrants ne sont plus
url-décodés pour des raisons de sécurité.
</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
-->