<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration73.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'migration73.new-features.php',
    1 => 'Nouvelles fonctionnalit&eacute;s',
    2 => 'Nouvelles fonctionnalit&eacute;s',
  ),
  'up' => 
  array (
    0 => 'migration73.php',
    1 => 'Migration de PHP 7.2.x vers PHP 7.3.x',
  ),
  'prev' => 
  array (
    0 => 'migration73.php',
    1 => 'Migration de PHP 7.2.x vers PHP 7.3.x',
  ),
  'next' => 
  array (
    0 => 'migration73.new-functions.php',
    1 => 'Nouvelles fonctions',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'appendices/migration73/new-features.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration73.new-features" class="sect1">
 <h2 class="title">Nouvelles fonctionnalités</h2>

 <div class="sect2" id="migration73.new-features.core">
  <h3 class="title">Cœur de PHP</h3>

  <div class="sect3" id="migration73.new-features.core.heredoc">
   <h4 class="title">Syntaxe Plus Flexible pour Heredoc et Nowdoc</h4>

   <p class="para">
    Le marqueur fermant pour les chaînes doc n&#039;est plus requis d&#039;être suivi par
    un point-virgule ou un retour à la ligne. Additionnellement le marqueur
    fermant peut être indenté, dans ce cas l&#039;indentation sera retirée de toutes
    les lignes dans la chaîne doc.
   </p>
  </div>

  <div class="sect3" id="migration73.new-features.core.destruct-reference">
   <h4 class="title">La Déstructuration de Tableaux prend en charge les Assignations de Référence</h4>

   <p class="para">
    La déstructuration de tableaux supporte désormais les assignements de
    référence en utilisant la syntaxe
    <code class="literal">[&amp;$a, [$b, &amp;$c]] = $d</code>.
    Ceci est aussi supporté pour <span class="function"><a href="function.list.php" class="function">list()</a></span>.
   </p>
  </div>

  <div class="sect3" id="migration73.new-features.core.instanceof-literals">
   <h4 class="title">L&#039;Opérateur Instanceof accepte les Littéraux</h4>

   <p class="para">
    <code class="literal">instanceof</code> accepte désormais les littéraux comme premier
    opérande, dans ce cas le résultat est toujours <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
   </p>
  </div>

  <div class="sect3" id="migration73.new-features.core.compileerror">
   <h4 class="title">Exception CompileError au lieu de quelques Erreurs de Compilation</h4>

   <p class="para">
    Une nouvelle exception <span class="classname"><a href="class.compileerror.php" class="classname">CompileError</a></span> a été ajoutée,
    dont <span class="classname"><a href="class.parseerror.php" class="classname">ParseError</a></span> hérite. Un petit nombre d&#039;erreurs
    de compilation lanceront désormais <span class="classname"><a href="class.compileerror.php" class="classname">CompileError</a></span> au
    lieu de générer une erreur fatale. Actuellement ceci affecte uniquement les
    erreurs de compilation qui peuvent être lancées par
    <span class="function"><a href="function.token-get-all.php" class="function">token_get_all()</a></span> dans le mode <strong><code><a href="tokenizer.constants.php#constant.token-parse">TOKEN_PARSE</a></code></strong>,
    mais plus d&#039;erreurs pourront être converties dans le futur.
   </p>
  </div>

  <div class="sect3" id="migration73.new-features.core.trailing-commas">
   <h4 class="title">Les Virgules de Fin sont Autorisées dans les Appels</h4>

   <p class="para">
    Les virgules de fin dans les appels de fonctions et méthodes sont désormais
    autorisées.
   </p>
  </div>

  <div class="sect3" id="migration73.new-features.core.argon2id">
   <h4 class="title">Support pour Argon2id</h4>

   <p class="para">
    L&#039;argument de configuration
    <strong class="option configure">--with-password-argon2[=dir]</strong>
    fournit désormais le support pour les hash Argon2i et Argon2id dans les
    fonctions <span class="function"><a href="function.password-hash.php" class="function">password_hash()</a></span>,
    <span class="function"><a href="function.password-verify.php" class="function">password_verify()</a></span>,
    <span class="function"><a href="function.password-get-info.php" class="function">password_get_info()</a></span>, et
    <span class="function"><a href="function.password-needs-rehash.php" class="function">password_needs_rehash()</a></span>. Les mots de passe peuvent être
    hachés et vérifiés en utilisant la constante <strong><code><a href="password.constants.php#constant.password-argon2id">PASSWORD_ARGON2ID</a></code></strong>.
    Le support pour Argon2i et Argon2id dans les fonctions
    <span class="function"><strong>password_*()</strong></span> nécessite désormais que PHP soit lié à
    la bibliothèque de référence libargon2 ≥ 20161029.
   </p>
  </div>

 </div>

 <div class="sect2" id="migration73.new-features.fpm">
  <h3 class="title">Gestionnaire de Processus FastCGI</h3>

  <p class="para">
   De nouvelles options ont été ajoutées pour personnaliser les journaux
   d&#039;événements FPM :
   <dl>
    
     <dt><code class="literal">log_limit</code></dt>
     <dd>
      <span class="simpara">
       Cette option globale peut être utilisée pour définir la limite de journal
       pour la ligne journalisée, ce qui permet de consigner des messages de
       plus de 1024 caractères sans retour à la ligne. Il corrige également
       divers problèmes d&#039;emballage (retour à la ligne).
      </span>
     </dd>
    
    
     <dt><code class="literal">log_buffering</code></dt>
     <dd>
      <span class="simpara">
       Cette option globale permet une journalisation expérimentale sans mise
       en mémoire tampon supplémentaire.
      </span>
     </dd>
    
    
     <dt><code class="literal">decorate_workers_output</code></dt>
     <dd>
      <span class="simpara">
       Cette option de pool permet de désactiver la décoration de sortie pour
       les sorties des workers quand <code class="literal">catch_workers_output</code>
       est activé.
      </span>
     </dd>
    
   </dl>
  </p>
 </div>

 <div class="sect2" id="migration73.new-features.bc">
  <h3 class="title">Fonctions BC Math</h3>

  <p class="para">
   <span class="function"><a href="function.bcscale.php" class="function">bcscale()</a></span> peut désormais être utilisé en tant que
   récupérateur pour récupérer la précision actuellement en utilisation.
  </p>
 </div>

 <div class="sect2" id="migration73.new-features.ldap">
  <h3 class="title">Lightweight Directory Access Protocol</h3>

  <p class="para">
   Le support total pour les Contrôles LDAP a été ajouté aux fonctions de requête
   <a href="book.ldap.php" class="link">LDAP</a> et
   <span class="function"><a href="function.ldap-parse-result.php" class="function">ldap_parse_result()</a></span> :
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      Un paramètre <code class="literal">$controls</code> pour envoyer les contrôles
      au serveur dans <span class="function"><a href="function.ldap-add.php" class="function">ldap_add()</a></span>,
      <span class="function"><a href="function.ldap-mod-replace.php" class="function">ldap_mod_replace()</a></span>, <span class="function"><a href="function.ldap-mod-add.php" class="function">ldap_mod_add()</a></span>,
      <span class="function"><a href="function.ldap-mod-del.php" class="function">ldap_mod_del()</a></span>, <span class="function"><a href="function.ldap-rename.php" class="function">ldap_rename()</a></span>,
      <span class="function"><a href="function.ldap-compare.php" class="function">ldap_compare()</a></span>, <span class="function"><a href="function.ldap-delete.php" class="function">ldap_delete()</a></span>,
      <span class="function"><a href="function.ldap-modify-batch.php" class="function">ldap_modify_batch()</a></span>,
      <span class="function"><a href="function.ldap-search.php" class="function">ldap_search()</a></span>, <span class="function"><a href="function.ldap-list.php" class="function">ldap_list()</a></span> et
      <span class="function"><a href="function.ldap-read.php" class="function">ldap_read()</a></span> a été ajouté.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Le paramètre de sortie <code class="literal">$controls</code> pour récupérer les
      contrôles depuis le serveur dans <span class="function"><a href="function.ldap-parse-result.php" class="function">ldap_parse_result()</a></span> a
      été ajouté.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Support pour <strong><code><a href="ldap.constants.php#constant.ldap-opt-server-controls">LDAP_OPT_SERVER_CONTROLS</a></code></strong> et
      <strong><code><a href="ldap.constants.php#constant.ldap-opt-client-controls">LDAP_OPT_CLIENT_CONTROLS</a></code></strong> dans
      <span class="function"><a href="function.ldap-get-option.php" class="function">ldap_get_option()</a></span> et
      <span class="function"><a href="function.ldap-set-option.php" class="function">ldap_set_option()</a></span> a été corrigé.
     </span>
    </li>
   </ul>
  </p>
 </div>

 <div class="sect2" id="migration73.new-features.mbstring">
  <h3 class="title">Fonctions pour les Chaînes Multi-Octets</h3>

  <div class="sect3" id="migration73.new-features.mbstring.case-mapping-folding">
   <h4 class="title">Support pour le Mappage Pleine Casse et Pliage de Casse</h4>

   <p class="para">
    Le support pour le mappage pleine casse et pliage de casse a été ajouté.
    Contrairement au mappage basique de casse, le mapping pleine casse peut
    modifier la longueur de la chaîne. Par exemple :
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />mb_strtoupper</span><span style="color: #007700">(</span><span style="color: #DD0000">"Straße"</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// Produit STRAßE en PHP 7.2<br />// Produit STRASSE en PHP 7.3<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
    Les différents modes de mappage et de pliage de casse sont disponibles à
    travers <span class="function"><a href="function.mb-convert-case.php" class="function">mb_convert_case()</a></span> :
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       <strong><code><a href="mbstring.constants.php#constant.mb-case-lower">MB_CASE_LOWER</a></code></strong> (utilisé par <span class="function"><a href="function.mb-strtolower.php" class="function">mb_strtolower()</a></span>)
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       <strong><code><a href="mbstring.constants.php#constant.mb-case-upper">MB_CASE_UPPER</a></code></strong> (utilisé par <span class="function"><a href="function.mb-strtoupper.php" class="function">mb_strtoupper()</a></span>)
      </span>
     </li> 
     <li class="listitem">
      <span class="simpara">
       <strong><code><a href="mbstring.constants.php#constant.mb-case-title">MB_CASE_TITLE</a></code></strong>
      </span>
     </li> 
     <li class="listitem">
      <span class="simpara">
       <strong><code><a href="mbstring.constants.php#constant.mb-case-fold">MB_CASE_FOLD</a></code></strong>
      </span>
     </li> 
     <li class="listitem">
      <span class="simpara">
       <strong><code><a href="mbstring.constants.php#constant.mb-case-lower-simple">MB_CASE_LOWER_SIMPLE</a></code></strong>
      </span>
     </li> 
     <li class="listitem">
      <span class="simpara">
       <strong><code><a href="mbstring.constants.php#constant.mb-case-upper-simple">MB_CASE_UPPER_SIMPLE</a></code></strong>
      </span>
     </li> 
     <li class="listitem">
      <span class="simpara">
       <strong><code><a href="mbstring.constants.php#constant.mb-case-title-simple">MB_CASE_TITLE_SIMPLE</a></code></strong>
      </span>
     </li> 
     <li class="listitem">
      <span class="simpara">
       <strong><code><a href="mbstring.constants.php#constant.mb-case-fold-simple">MB_CASE_FOLD_SIMPLE</a></code></strong> (utilisé par les opérations insensibles à la casse)
      </span>
     </li> 
    </ul>
    Seul un mappage complet des cas, inconditionnel et indépendant de la langue, est effectué.
   </p>
  </div>

  <div class="sect3" id="migration73.new-features.mbstring.case-insensitive-ops">
   <h4 class="title">Les Opérations de Chaînes Insensibles à la Casse utilisent le Pliage de Casse</h4>

   <p class="para">
    Les opérations de chaînes insensibles à la casse utilisent désormais le pliage
    de casse au lieu du mappage de casse lors des comparaisons. Ceci signifie
    que plus de caractères seront considérés (insensible à la casse) égaux désormais.
   </p>
  </div>

  <div class="sect3" id="migration73.new-features.mbstring.mb-case-title">
   <h4 class="title">MB_CASE_TITLE exécute une Conversion de casse de titre</h4>

   <p class="para">
    <span class="function"><a href="function.mb-convert-case.php" class="function">mb_convert_case()</a></span> avec <strong><code><a href="mbstring.constants.php#constant.mb-case-title">MB_CASE_TITLE</a></code></strong>
    exécute désormais une conversion de casse de titre basée sur les propriétés
    dérivées Unicode Cased et CaseIgnorable. En particulier ceci améliore aussi
    la gestion des guillemets et apostrophes.
   </p>
  </div>

  <div class="sect3" id="migration73.new-features.mbstring.ucd11">
   <h4 class="title">Support pour Unicode 11</h4>

   <p class="para">
    Les tables de données pour les
    <a href="book.mbstring.php" class="link">Chaînes Multi-octets</a>
    ont été mises à jour pour Unicode 11.
   </p> 
  </div>

  <div class="sect3" id="migration73.new-features.mbstring.long-strings">
   <h4 class="title">Support pour les Chaînes Longues</h4>

   <p class="para">
    Les <a href="ref.mbstring.php" class="link">Fonctions de Chaînes Multi-Octets</a>
    supportent désormais correctement les chaînes plus grandes que 2Go.
   </p>
  </div>

  <div class="sect3" id="migration73.new-features.mbstring.performance">
   <h4 class="title">Amélioration des Performances</h4>

   <p class="para">
    Les performances de l&#039;extension des <a href="book.mbstring.php" class="link">Chaînes
    Multi-Octets</a> ont été améliorées de façon significative à tous les niveaux.
    Les plus grandes améliorations sont dans les fonctions de conversion de casse.
   </p>
  </div>

  <div class="sect3" id="migration73.new-features.mbstring.named-captures">
   <h4 class="title">Support pour les Captures Nommées</h4>

   <p class="para">
    Les fonctions <code class="literal">mb_ereg_*</code> supportent désormais les captures
    nommées. Les fonctions de correspondances comme <span class="function"><a href="function.mb-ereg.php" class="function">mb_ereg()</a></span>
    retourneront désormais les captures nommées en utilisant à la fois leurs
    numéros de groupe et leurs noms, similaires à PCRE :
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />mb_ereg</span><span style="color: #007700">(</span><span style="color: #DD0000">'(?&lt;word&gt;\w+)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'国'</span><span style="color: #007700">, </span><span style="color: #0000BB">$matches</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// =&gt; [0 =&gt; "国", 1 =&gt; "国", "word" =&gt; "国"];<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
    De plus, <span class="function"><a href="function.mb-ereg-replace.php" class="function">mb_ereg_replace()</a></span> supporte désormais les
    notations <code class="code">\k&lt;&gt;</code> et <code class="code">\k&#039;&#039;</code> pour faire référence
    aux captures nommées dans la chaîne de remplacement :
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />mb_ereg_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">'\s*(?&lt;word&gt;\w+)\s*'</span><span style="color: #007700">, </span><span style="color: #DD0000">"_\k&lt;word&gt;_\k'word'_"</span><span style="color: #007700">, </span><span style="color: #DD0000">' foo '</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// =&gt; "_foo_foo_"<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
    <code class="code">\k&lt;&gt;</code> et <code class="code">\k&#039;&#039;</code> peuvent aussi être utilisés pour
    les références numériques, qui fonctionnent aussi avec des nombres de groupe
    supérieur à 9.
   </p>
  </div>

 </div>

 <div class="sect2" id="migration73.new-features.realine">
  <h3 class="title">Readline</h3>

  <p class="para">
   Le support pour les options <code class="literal">completion_append_character</code>
   et <code class="literal">completion_suppress_append</code> a été ajouté à
   <span class="function"><a href="function.readline-info.php" class="function">readline_info()</a></span>. Ces options sont seulement disponibles
   si PHP est lié à libreadline (plutôt que libedit).
  </p>
 </div>

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