<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration82.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'migration82.new-features.php',
    1 => 'Neue Features',
    2 => 'Neue Features',
  ),
  'up' => 
  array (
    0 => 'migration82.php',
    1 => 'Migration von PHP 8.1.x auf PHP 8.2.x',
  ),
  'prev' => 
  array (
    0 => 'migration82.php',
    1 => 'Migration von PHP 8.1.x auf PHP 8.2.x',
  ),
  'next' => 
  array (
    0 => 'migration82.new-functions.php',
    1 => 'Neue Funktionen',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'appendices/migration82/new-features.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration82.new-features" class="sect1">
 <h2 class="title">Neue Features</h2>

 <div class="sect2" id="migration82.new-features.core">
  <h3 class="title">PHP-Kern</h3>

  <div class="sect3" id="migration82.new-features.core.sensitiveparameter">
   <h4 class="title">Attribut SensitiveParameter</h4>

   <p class="para">
    Das Attribut <code class="code">#[\SensitiveParameter]</code> wurde hinzugefügt, um
    sensible Daten in Backtraces unkenntlich zu machen.
    
   </p>
  </div>

  <div class="sect3" id="migration82.new-features.core.error-log-mode-ini">
   <h4 class="title">INI-Direktive error_log_mode</h4>
   <p class="para">
    Die INI-Direktive <a href="errorfunc.configuration.php#ini.error-log-mode" class="link">error_log_mode</a>
    wurde hinzugefügt, um die Berechtigungen für die Fehler-Logdatei festlegen
    zu können.
   </p>
  </div>

  <div class="sect3" id="migration82.new-features.core.enums-property-constant-expression">
   <h4 class="title">Eigenschaften von Aufzählungen in konstanten Ausdrücken</h4>

   <p class="para">
    Es ist nun möglich, die Eigenschaften von
    <a href="language.enumerations.php" class="link">Aufzählungen</a> in konstanten
    Ausdrücken abzurufen.
    
   </p>
  </div>

  <div class="sect3" id="migration82.new-features.core.type-system">
   <h4 class="title">Verbesserungen am Typensystem</h4>

   <p class="para">
    Es ist nun möglich, <span class="type"><a href="language.types.null.php" class="type null">null</a></span> und <span class="type"><a href="language.types.singleton.php" class="type false">false</a></span> als
    eigenständige Typen zu verwenden.
    
   </p>

   <p class="para">
    Der Typ <span class="type"><a href="language.types.singleton.php" class="type true">true</a></span> wurde hinzugefügt.
    
   </p>

   <p class="para">
    Es ist nun möglich, Schnittmengentypen (Intersection-Typen) und
    zusammengefasste Typen (Union-Typen) zu kombinieren. Der Typ muss in DNF
    geschrieben werden.
    
   </p>
  </div>

  <div class="sect3" id="migration82.new-features.core.constant-in-traits">
   <h4 class="title">Konstanten in Traits</h4>

   <p class="para">
    Es ist nun möglich, Konstanten in Traits zu definieren.
    
   </p>
   
  </div>

  <div class="sect3" id="migration82.new-features.core.readonly-classes">
   <h4 class="title">Schreibgeschützte Klassen</h4>

   <p class="para">
    Klassen können nun als
    <a href="language.oop5.basic.php#language.oop5.basic.class.readonly" class="link">readonly</a>
    definiert werden.
    
   </p>
  </div>

 </div>

 <div class="sect2" id="migration82.new-features.curl">
  <h3 class="title">cURL</h3>

  <p class="para">
   Die Option <strong><code><a href="curl.constants.php#constant.curlinfo-effective-method">CURLINFO_EFFECTIVE_METHOD</a></code></strong> wurde
   hinzugefügt, die die aktuell verwendete <abbr title="Hypertext Transfer Protocol">HTTP</abbr>-Methode im
   Rückgabewert von <span class="function"><a href="function.curl-getinfo.php" class="function">curl_getinfo()</a></span> zurückgibt.
  </p>

  <p class="para">
   <a href="migration82.constants.php#migration82.constants.curl" class="link">Mehrere neue Konstanten</a>
   von libcurl 7.62 bis 7.80 sind nun verfügbar.
  </p>

  <p class="para">
   Die Funktion <span class="function"><a href="function.curl_upkeep.php" class="function">curl_upkeep()</a></span> wurde hinzugefügt, um
   Verbindungen aufrechtzuerhalten.
  </p>
 </div>

 <div class="sect2" id="migration82.new-features.dba">
  <h3 class="title">DBA</h3>

  <p class="para">
   Der LMDB-Treiber akzeptiert nun die Flags
   <strong><code><a href="dba.constants.php#constant.dba-lmdb-use-sub-dir">DBA_LMDB_USE_SUB_DIR</a></code></strong> und
   <strong><code><a href="dba.constants.php#constant.dba-lmdb-no-sub-dir">DBA_LMDB_NO_SUB_DIR</a></code></strong>, um zu bestimmen, ob beim
   Erstellen einer Datenbankdatei ein Unterverzeichnis erstellt werden soll
   oder nicht.
  </p>
 </div>

 <div class="sect2" id="migration82.new-features.oci8">
  <h3 class="title">OCI8</h3>

  <p class="para">
   Um die Leistung bei Abfragen von LOBs (Large Objects) zu optimieren, wurden
   die INI-Direktive
   <a href="oci8.configuration.php#ini.oci8.prefetch-lob-size" class="link">oci8.prefetch_lob_size</a>
   und die Funktion <span class="function"><a href="function.oci-set-prefetch-lob.php" class="function">oci_set_prefetch_lob()</a></span> hinzugefügt.
   Damit wird die Anzahl der Roundtrips (Kommunikationsvorgänge) zwischen PHP
   und Oracle-Datenbanken beim Abrufen von LOBs reduziert. Diese Funktion ist
   mit Oracle Database 12.2 oder höher verwendbar.
  </p>
 </div>

 <div class="sect2" id="migration82.new-features.openssl">
  <h3 class="title">OpenSSL</h3>

  <p class="para">
   Der Algorithmus chacha20-poly1305 unterstützt nun AEAD.
  </p>
 </div>

 <div class="sect2" id="migration82.new-features.odbc">
  <h3 class="title">ODBC</h3>

  <p class="para">
   Die Funktionen <span class="function"><a href="function.odbc-connection-string-is-quoted.php" class="function">odbc_connection_string_is_quoted()</a></span>,
   <span class="function"><a href="function.odbc-connection-string-should-quote.php" class="function">odbc_connection_string_should_quote()</a></span>, und
   <span class="function"><a href="function.odbc-connection-string-quote.php" class="function">odbc_connection_string_quote()</a></span> wurden hinzugefügt. Diese
   werden in den Erweiterungen ODBC und PDO_ODBC hauptsächlich hinter den
   Kulissen verwendet, sind aber für einfachere Unit-Tests und für
   Benutzeranwendungen und -bibliotheken zugänglich, um selbst Quoting (in
   Anführungszeichen setzen) zu verwenden.
  </p>
 </div>

 <div class="sect2" id="migration82.new-features.pcre">
  <h3 class="title">PCRE</h3>

  <p class="para">
   Die Unterstützung für den Modifikator <code class="literal">n</code>
   (NO_AUTO_CAPTURE) wurde hinzugefügt, wodurch einfache
   <code class="code">(xyz)</code>-Gruppen nicht erfasst werden. Nur benannte Gruppen wie
   <code class="code">(?&lt;name&gt;xyz)</code> werden erfasst. Dies wirkt sich nur darauf
   aus, welche Gruppen erfasst werden. Es ist immer noch möglich, nummerierte
   Referenzen auf Teile von Suchmustern zu verwenden, und das Array mit den
   Übereinstimmung enthält immer noch die nummerierten Ergebnisse.
  </p>
 </div>

 <div class="sect2" id="migration82.new-features.random">
  <h3 class="title">Random</h3>

  <p class="para">
   Dies ist eine neue Erweiterung, die bestehende Implementierungen von
   Zufallszahlengeneratoren organisiert und vereinheitlicht. Es stehen nun
   neue und bessere Zufallszahlengeneratoren zur Verfügung, bei denen die
   Probleme mit dem Geltungsbereich behoben wurden.
   
   
  </p>
 </div>

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