<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration81.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'migration81.other-changes.php',
    1 => 'Autres changements',
    2 => 'Autres changements',
  ),
  'up' => 
  array (
    0 => 'migration81.php',
    1 => 'Migration de PHP 8.0.x vers PHP 8.1.x',
  ),
  'prev' => 
  array (
    0 => 'migration81.deprecated.php',
    1 => 'Fonctionnalit&eacute;s d&eacute;pr&eacute;ci&eacute;es',
  ),
  'next' => 
  array (
    0 => 'migration80.php',
    1 => 'Migration de PHP 7.4.x vers PHP 8.0.x',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'appendices/migration81/other-changes.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration81.other-changes" class="sect1">
 <h2 class="title">Autres changements</h2>

 <div class="sect2" id="migration81.other-changes.sapi">
  <h3 class="title">Changement dans les modules SAPI</h3>

  <div class="sect3" id="migration81.other-changes.sapi.cli">
   <h4 class="title">CLI</h4>

   <p class="para">
    Utiliser <strong class="option unknown">-a</strong> sans l&#039;extension <a href="book.readline.php" class="link">readline</a> va maintenant résulter en une erreur.
    Auparavant, <strong class="option unknown">-a</strong> sans readline avait le même comportement que
    l&#039;appel de <strong class="command">php</strong> sans aucun argument, à part l&#039;impression d&#039;un message
    <code class="literal">&quot;Mode interactif activé&quot;</code> supplémentaire.
    Ce mode n&#039;était <em>pas</em> interactif.
   </p>
  </div>

  <div class="sect3" id="migration81.other-changes.sapi.phpdbg">
   <h4 class="title">PHPDBG</h4>

   <p class="para">
    Les fonctionnalités distantes de <a href="book.phpdbg.php" class="link">phpdbg</a> ont été enlevées.
   </p>
  </div>
 </div>

 <div class="sect2" id="migration81.other-changes.functions">
  <h3 class="title">Fonctions changées</h3>

  <div class="sect3" id="migration81.other-changes.functions.core">
   <h4 class="title">Core</h4>

   <p class="para">
    L&#039;ordre des propriétés utilisées dans <a href="control-structures.foreach.php" class="link"><code class="literal">foreach</code></a>, <span class="function"><a href="function.var-dump.php" class="function">var_dump()</a></span>,
    <span class="function"><a href="function.serialize.php" class="function">serialize()</a></span>, la comparaison d&#039;objets, etc. a été changé.
    Les propriétés sont maintenant ordonnées naturellement selon leur déclaration
    et leur héritage. Les propriétés déclarées dans une classe de base sont placées
    avant les propriétés de l&#039;enfant.
   </p>
   <p class="para">
    Cet ordre est cohérent avec la disposition interne des propriétés dans la structure
    <code class="code">zend_object</code> et répète l&#039;ordre dans
    <code class="code">default_properties_table[]</code> et <code class="code">properties_info_table[]</code>.
    L&#039;ancien ordre n&#039;était pas documenté et était causé par des détails d&#039;implémentation.
   </p>
  </div>

  <div class="sect3" id="migration81.other-changes.functions.filter">
   <h4 class="title">Filter</h4>

   <p class="para">
    Le drapeau <strong><code><a href="filter.constants.php#constant.filter-flag-allow-octal">FILTER_FLAG_ALLOW_OCTAL</a></code></strong> du filtre
    <strong><code><a href="filter.constants.php#constant.filter-validate-int">FILTER_VALIDATE_INT</a></code></strong>
    accepte désormais les chaînes octales avec le préfixe octal
    (<code class="literal">&quot;0o&quot;</code>/<code class="literal">&quot;0O&quot;</code>).
   </p>
  </div>

  <div class="sect3" id="migration81.other-changes.functions.gmp">
   <h4 class="title">GMP</h4>

   <p class="para">
    Toutes les fonctions <a href="book.gmp.php" class="link">GMP</a> acceptent désormais les chaînes octales avec le préfixe octal
    (<code class="literal">&quot;0o&quot;</code>/<code class="literal">&quot;0O&quot;</code>).
   </p>
  </div>

  <div class="sect3" id="migration81.other-changes.functions.pdo-odbc">
   <h4 class="title">PDO ODBC</h4>

   <p class="para">
    <span class="methodname"><a href="pdo.getattribute.php" class="methodname">PDO::getAttribute()</a></span> avec
    <strong><code><a href="pdo.constants.php#pdo.constants.attr-server-info">PDO::ATTR_SERVER_INFO</a></code></strong> et
    <strong><code><a href="pdo.constants.php#pdo.constants.attr-server-version">PDO::ATTR_SERVER_VERSION</a></code></strong>
    retournent désormais des valeurs à la place de lancer <span class="classname"><a href="class.pdoexception.php" class="classname">PDOException</a></span>.
   </p>
  </div>

  <div class="sect3" id="migration81.other-changes.functions.reflection">
   <h4 class="title">Reflection</h4>

   <p class="para">
    <span class="methodname"><a href="reflectionproperty.setaccessible.php" class="methodname">ReflectionProperty::setAccessible()</a></span> et
    <span class="methodname"><a href="reflectionmethod.setaccessible.php" class="methodname">ReflectionMethod::setAccessible()</a></span>
    n&#039;ont plus d&#039;effets.
    Les propriétés et méthodes sont maintenant toujours considérées accessibles via la réflexion.
   </p>
  </div>

  <div class="sect3" id="migration81.other-changes.functions.standard">
   <h4 class="title">Standard</h4>

   <p class="para">
    <span class="function"><a href="function.syslog.php" class="function">syslog()</a></span> est désormais binaire sûr.
   </p>
  </div>
 </div>

 <div class="sect2" id="migration81.other-changes.extensions">
  <h3 class="title">Autres changements aux extensions</h3>

  <div class="sect3" id="migration81.other-changes.extensions.gd">
   <h4 class="title">GD</h4>

   <p class="para">
    <span class="function"><a href="function.imagewebp.php" class="function">imagewebp()</a></span> peut maintenant effectuer un encodage WebP sans perte
    en passant <strong><code><a href="image.constants.php#constant.img-webp-lossless">IMG_WEBP_LOSSLESS</a></code></strong> comme qualité.
   </p>
   <p class="para">
    Cette constante n&#039;est définie que si la bibliothèque GD utilisée supporte
    l&#039;encodage WebP sans perte.
   </p>
  </div>

  <div class="sect3" id="migration81.other-changes.extensions.mysqli">
   <h4 class="title">MySQLi</h4>

   <p class="para">
    <span class="methodname"><a href="mysqli-stmt.next-result.php" class="methodname">mysqli_stmt::next_result()</a></span> et
    <span class="methodname"><strong>mysqli::fetch_all()</strong></span>
    sont maintenant disponibles lors de la compilation contre libmysqlclient.
   </p>
  </div>

  <div class="sect3" id="migration81.other-changes.extensions.openssl">
   <h4 class="title">OpenSSL</h4>

   <ul class="itemizedlist">
    <li class="listitem">
     <p class="para">
      L&#039;<a href="book.openssl.php" class="link">extension OpenSSL</a> requiert maintenant au moins OpenSSL version 1.0.2.
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      OpenSSL 3.0 est maintenant supporté. Soyez conscient que de nombreux chiffrements ne sont 
      plus activés par défaut (partie du fournisseur hérité), et que la validation des 
      paramètres (par exemple, les tailles de clé minimales) est maintenant plus stricte.
     </p>
    </li>
   </ul>
  </div>

  <div class="sect3" id="migration81.other-changes.extensions.phar">
   <h4 class="title">Phar</h4>

   <ul class="itemizedlist">
    <li class="listitem">
     <p class="para">
      SHA256 est désormais utilisé par défaut pour les signatures.
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      Ajout du support pour les signatures OpenSSL_SHA256 et OpenSSL_SHA512.
     </p>
    </li>
   </ul>
  </div>

  <div class="sect3" id="migration81.other-changes.extensions.snmp">
   <h4 class="title">SNMP</h4>

   <ul class="itemizedlist">
    <li class="listitem">
     <p class="para">
      Ajout du support pour SHA256 et SHA512 pour le protocole de sécurité.
     </p>
    </li>
   </ul>
  </div>

  <div class="sect3" id="migration81.other-changes.extensions.standard">
   <h4 class="title">Standard</h4>

   <p class="para">
    <code class="code">--with-password-argon2</code> utilise maintenant pkg-config pour détecter libargon2.
    En conséquence, un emplacement alternatif pour libargon2 devrait maintenant être spécifié en utilisant
    <var class="envar">PKG_CONFIG_PATH</var>.
   </p>
  </div>
 </div>

 <div class="sect2" id="migration81.other-changes.ini">
  <h3 class="title">Changements dans la gestion du fichier INI</h3>

  <ul class="itemizedlist">
   <li class="listitem">
    <p class="para">
     La directive INI <a href="errorfunc.configuration.php#ini.log-errors-max-len" class="link">log_errors_max_len</a>
     a été supprimée.
     Elle n&#039;avait plus d&#039;effet à partir de PHP 8.0.0.
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     Un dollar en tête d&#039;une chaîne citée peut maintenant être échappé : <code class="literal">&quot;\${&quot;</code> sera maintenant
     interprété comme une chaîne avec le contenu <code class="literal">${</code>.
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     Les antislashes dans les chaînes doublement citées sont maintenant traités de manière plus cohérente comme
     des caractères d&#039;échappement. Auparavant, <code class="literal">&quot;foo\\&quot;</code> suivi de
     quelque chose d&#039;autre qu&#039;une nouvelle ligne n&#039;était pas considéré comme une chaîne terminée.
     Il est maintenant interprété comme une chaîne avec le contenu <code class="literal">foo\</code>.
     Cependant, en tant qu&#039;exception, la chaîne <code class="literal">&quot;foo\&quot;</code>
     suivie d&#039;une nouvelle ligne continuera d&#039;être traitée comme une chaîne valide avec
     le contenu <code class="literal">foo\</code> plutôt qu&#039;une chaîne non terminée.
     Cette exception existe pour supporter les utilisations naïves des chemins de fichiers Windows tels que
     <code class="literal">&quot;C:\foo\&quot;</code>.
    </p>
   </li>
  </ul>
 </div>

</div><?php manual_footer($setup); ?>