{"id":50851,"date":"2022-10-13T07:00:48","date_gmt":"2022-10-13T14:00:48","guid":{"rendered":"https:\/\/dhblog.dream.press\/blog\/?p=50851"},"modified":"2025-01-16T17:38:20","modified_gmt":"2025-01-17T01:38:20","slug":"php-82","status":"publish","type":"post","link":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/","title":{"rendered":"PHP 8.2: Was zu erwarten ist (Entwicklerhandbuch \u2013 Aktualisiert)"},"content":{"rendered":"\n<p>PHP 8.2 soll im November dieses Jahres erscheinen, wobei die aktuellste stabile Version PHP 8.1.5 ist. Obwohl es noch fr\u00fch im Prozess ist, gab es eine gemischte Reaktion auf PHP 8.2 und die Kompatibilit\u00e4t von WordPress Core, Plugins und Themes.<\/p>\n\n\n\n<p>Allerdings kann es hilfreich sein zu wissen, was Sie erwartet, damit Sie sich auf die <a href=\"https:\/\/www.dreamhost.com\/blog\/de\/php-aktualisieren\/\" target=\"blank&quot;\" rel=\"noopener\">neueste PHP-Version vorbereiten<\/a> k\u00f6nnen. Indem Sie sich \u00fcber die neuen Funktionen und diejenigen, die veraltet werden, informieren, k\u00f6nnen Sie verstehen, wie das Update die Entwicklung beeinflussen k\u00f6nnte. Dieses Wissen kann Ihnen auch helfen, sich auf die letztendliche Ver\u00f6ffentlichung vorzubereiten.<\/p>\n\n\n\n<p>In diesem Beitrag fassen wir die neuesten PHP-Versionen zusammen. Dann werden wir die Neuheiten in PHP 8.2 behandeln und den Ver\u00f6ffentlichungsplan besprechen. Lass uns anfangen!<\/p>\n\n\n\n<h2 id=\"h-an-overview-of-php-versions\" class=\"wp-block-heading\"><b>\u00dcbersicht der PHP-Versionen<\/b><\/h2>\n\n\n\n<p><a href=\"https:\/\/help.dreamhost.com\/hc\/en-us\/articles\/214202188-PHP-overview\" target=\"blank&quot;\" rel=\"noopener\">PHP<\/a> ist die prim\u00e4re Programmiersprache von WordPress. Sie spielt eine entscheidende Rolle bei der Umwandlung von Daten aus Ihrer Datenbank in HTML-Webseiten f\u00fcr die Besucher Ihrer Website.<\/p>\n\n\n\n<p>Als Website-Besitzer oder Entwickler sind Sie wahrscheinlich bereits mit der Wichtigkeit vertraut, Ihr WordPress-Core, Themes und Plugins aktuell zu halten. Es ist jedoch auch entscheidend, Ihre PHP-Version auf dem neuesten Stand zu halten.<\/p>\n\n\n\n<p><style>.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }<\/style><\/p>\n\n\n\n<div class=\"embed-container\"><iframe data-src=\"https:\/\/www.youtube.com\/embed\/G_O-mxZAk-g\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/div>\n\n\n\n<p>Derzeit empfiehlt WordPress die Verwendung von mindestens <a href=\"https:\/\/wordpress.org\/about\/requirements\/\" target=\"blank&quot;\" rel=\"noopener\">PHP 7.4<\/a>. \u00c4ltere Versionen von PHP erhalten keine aktive Unterst\u00fctzung mehr f\u00fcr Sicherheitsupdates und Fehlerbehebungen. Daher kann ein Upgrade auf die neueste <i>stabile<\/i> Version von PHP zu einer besseren Website-Sicherheit, verbesserten Leistung und h\u00f6heren Unterst\u00fctzungsniveaus f\u00fchren (wir betonen <i>stabil<\/i>, da ein Teil der \u00fcber 60.000 Plugins von WordPress noch nicht vollst\u00e4ndig mit PHP 8.0 kompatibel ist, daher ist es ratsam, diese Updates mit etwas Vorsicht zu behandeln).<\/p>\n\n\n\n<p>PHP 7.4 f\u00fchrte typisierte Eigenschaften, einen numerischen Trenner mit Unterstrich und verschiedene Verbesserungen ein. Seitdem wurden einige weitere <a href=\"https:\/\/php.watch\/versions\" target=\"blank&quot;\" rel=\"noopener\">Iterationen von PHP<\/a> ver\u00f6ffentlicht.<\/p>\n\n\n\n<p>PHP 8.0, ver\u00f6ffentlicht im November 2020, brachte eine Handvoll wesentlicher Funktionen. Neben Syntax- und Leistungsverbesserungen umfasste die Ver\u00f6ffentlichung:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Benannte Parameter<\/li>\n\n\n\n<li>Syntaxabgleich<\/li>\n\n\n\n<li>Vereinigungstypen<\/li>\n\n\n\n<li>Konstruktor-Eigenschaftsf\u00f6rderung<\/li>\n\n\n\n<li>JIT (welches die Ausf\u00fchrung von PHP-Quellcode beeinflusst)<\/li>\n\n\n\n\n<\/ul>\n\n\n\n<p>Ein Jahr sp\u00e4ter kam PHP 8.1, die neueste Hauptversion von PHP. Dieses Update enth\u00e4lt bedeutende Funktionen, wie zum Beispiel:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Schnittmengen-Typen<\/li>\n\n\n\n<li>Schreibgesch\u00fctzte Eigenschaften<\/li>\n\n\n\n<li>Enums<\/li>\n\n\n\n<li>Fasern<\/li>\n\n\n\n<li>Niemals R\u00fcckgabetyp<\/li>\n\n\n\n\n<\/ul>\n\n\n\n<p>Auf dem neuesten Stand der PHP-Versionen zu bleiben, kann die Leistung und Sicherheit Ihrer Website verbessern. Es ist jedoch wichtig zu wissen, welche \u00c4nderungen zu erwarten sind, bevor Sie ein Upgrade durchf\u00fchren. Wenn Sie daran interessiert sind, den aktuellen Stand von PHP 8.2 zu testen, k\u00f6nnen Sie dies \u00fcber <a href=\"https:\/\/github.com\/devilbox\/docker-php-fpm-8.2\" target=\"blank&quot;\" rel=\"noopener\">GitHub<\/a> tun.<\/p>\n\n\n\n<h2 id=\"h-what-s-new-in-php-8-2\" class=\"wp-block-heading\"><b>Was ist neu in PHP 8.2<\/b><\/h2>\n\n\n\n<p>PHP 8.2 wird voraussichtlich Ende 2022 ver\u00f6ffentlicht. Hier ist der <a href=\"https:\/\/wiki.php.net\/todo\/php82\" target=\"blank&quot;\" rel=\"noopener\">aktuelle Ver\u00f6ffentlichungsplan<\/a>, mit allgemeiner Verf\u00fcgbarkeit (GA) f\u00fcr den 24. November 2022 geplant:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>9. Juni: Alpha 1<\/li>\n\n\n\n<li>23. Juni: Alpha 2<\/li>\n\n\n\n<li>7. Juli: Alpha 3<\/li>\n\n\n\n<li>19. Juli: Feature-Freeze<\/li>\n\n\n\n<li>21. Juli: Beta 1<\/li>\n\n\n\n<li>4. August: Beta 2<\/li>\n\n\n\n<li>18. August: Beta 3<\/li>\n\n\n\n<li>1. September: Release-Kandidat 1<\/li>\n\n\n\n<li>15. September: Release-Kandidat 2<\/li>\n\n\n\n<li>29. September: Release-Kandidat 3<\/li>\n\n\n\n<li>13. Oktober: Release-Kandidat 4<\/li>\n\n\n\n<li>27. Oktober: Release-Kandidat 5<\/li>\n\n\n\n<li>10. November: Release-Kandidat 6<\/li>\n\n\n\n<li>24. November: GA<\/li>\n\n\n\n\n<\/ul>\n\n\n\n<p>Laut der offiziellen Dokumentation auf der <a href=\"https:\/\/php.watch\/versions\/8.2\" target=\"_blank\" rel=\"noopener\">PHP-Website<\/a> sollte es eine Handvoll neuer Funktionen und veralteter Funktionen geben. Werfen wir einen Blick auf einige davon!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-disjunctive-normal-form-dnf-types\"><b>Disjunktive Normalform (DNF) Typen<\/b><\/h3>\n\n\n\n<p>PHP 8.2 wird eine neue <a href=\"https:\/\/wiki.php.net\/rfc\/dnf_types\" target=\"blank&quot;\" rel=\"noopener\">einf\u00fchren<\/a> <a href=\"https:\/\/en.wikipedia.org\/wiki\/Disjunctive_normal_form\" target=\"blank&quot;\" rel=\"noopener\">Disjunktive Normalform (DNF)<\/a> Typenfunktion. DNF ist eine standardisierte Methode zur Organisation von booleschen Ausdr\u00fccken \u2014 speziell in eine OR-verkn\u00fcpfte Serie von ANDs. Wenn DNF auf Typdeklarationen angewendet wird, erm\u00f6glicht es eine standardisierte Methode, kombinierte Union- und Schnitttypen zu schreiben, die der Parser verarbeiten kann.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-new-mysqli-execute-query-function-and-mysqli-execute-query-method\"><b>Neue mysqli_execute_query Funktion und mysqli::execute_query Methode<\/b><\/h3>\n\n\n\n<p><a href=\"https:\/\/wiki.php.net\/rfc\/mysqli_execute_query\" target=\"blank&quot;\" rel=\"noopener\">Parametrisierte MySQLi-Abfragen ausf\u00fchren<\/a> wird in PHP 8.2 einfacher sein, dank der neuen <span style=\"font-family: 'courier new', courier, monospace;\">mysqli_execute_query($sql, $params)<\/span> Funktion und <span style=\"font-family: 'courier new', courier, monospace;\">mysqli::execute_query<\/span> Methode.<\/p>\n\n\n\n<p>Dies wird die Komplexit\u00e4t der Verwendung von parametrisierten Abfragen weiter verringern, was es Entwicklern dann erleichtert, sich von <span style=\"font-family: 'courier new', courier, monospace;\">mysqli_query()<\/span> sowie gef\u00e4hrlichem\/risikoreichem Escaping von Benutzerwerten zu entfernen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-fetch-enum-properties-in-const-expressions\"><b>Eigenschaften von Aufz\u00e4hlungen in const Ausdr\u00fccken abrufen<\/b><\/h3>\n\n\n\n<p><a href=\"https:\/\/wiki.php.net\/rfc\/fetch_property_in_const_expressions\" target=\"blank&quot;\" rel=\"noopener\">Laut dem RFC<\/a>, \u201eDieser RFC schl\u00e4gt vor, die Verwendung von <span style=\"font-family: 'courier new', courier, monospace;\">-&gt;\/?-&gt;<\/span> zu erlauben, um Eigenschaften von Enums in konstanten Ausdr\u00fccken abzurufen. Die Hauptmotivation f\u00fcr diese \u00c4nderung besteht darin, die Name- und Wert-Eigenschaften an Orten abrufen zu k\u00f6nnen, an denen Enum-Objekte nicht erlaubt sind, wie z.B. bei Array-Schl\u00fcsseln.\u201c<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-new-random-extension\"><b>Neue zuf\u00e4llige Erweiterung<\/b><\/h3>\n\n\n\n<p>PHP 8.2 f\u00fchrt eine neue PHP-Erweiterung namens <span style=\"font-family: 'courier new', courier, monospace;\">random<\/span> ein. Sie organisiert und konsolidiert vorhandene PHP-Funktionalit\u00e4ten im Zusammenhang mit der Zufallszahlen-Generierung. Zudem f\u00fchrt sie eine Reihe von PHP-Klassenstrukturen und Ausnahmeklassen ein, um granulare Optionen f\u00fcr Zufallszahlengeneratoren und Ausnahmebehandlungen zu bieten.<\/p>\n\n\n\n<p>Die zuf\u00e4llige Erweiterung ist mit PHP geb\u00fcndelt, und es gibt keine Kompilierungs- oder Laufzeitkonfigurationsoption, um die <span style=\"font-family: 'courier new', courier, monospace;\">random<\/span>-Erweiterung zu deaktivieren. Die <span style=\"font-family: 'courier new', courier, monospace;\">random<\/span>-Erweiterung wird in PHP 8.2 und sp\u00e4ter immer verf\u00fcgbar sein.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-new-curl-upkeep-function\"><b>Neue curl_upkeep Funktion<\/b><\/h3>\n\n\n\n<p>PHP 8.2 f\u00fcgt der Curl-Erweiterung <a href=\"https:\/\/php.watch\/versions\/8.2\/curl_upkeep\" target=\"blank&quot;\" rel=\"noopener\">eine neue Funktion<\/a> hinzu, die <span style=\"font-family: 'courier new', courier, monospace;\">curl_upkeep<\/span> genannt wird. Die Funktion curl_upkeep ruft <span style=\"font-family: 'courier new', courier, monospace;\">curl_easy_upkeep()<\/span> in libcurl auf, das ist die zugrundeliegende C-Bibliothek, die die PHP Curl-Erweiterung verwendet.<\/p>\n\n\n\n<p>Die <span style=\"font-family: 'courier new', courier, monospace;\">curl_upkeep()<\/span>-Funktion f\u00fchrt die Arbeiten durch, die eine Curl-Verbindung am Leben erhalten. Aber nicht jeder Verbindungstyp, den Curl integriert, unterst\u00fctzt die Verbindungspflege. Derzeit unterst\u00fctzen nur HTTP\/2-Verbindungen dies.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-new-ini-parse-quantity-function\"><b>Neue ini_parse_quantity Funktion<\/b><\/h3>\n\n\n\n<p><a href=\"https:\/\/php.watch\/versions\/8.2\/ini_parse_quantity\" target=\"blank&quot;\" rel=\"noopener\"><span style=\"font-family: 'courier new', courier, monospace;\">ini_parse_quantity<\/span><\/a> ist eine neue Funktion, die in PHP 8.2 hinzugef\u00fcgt wird. Sie parsiert jede von PHP INI-Werten erkannte Datengr\u00f6\u00dfe (wie 56K, 256M oder 1G) und gibt dann die Datengr\u00f6\u00dfe in Bytes zur\u00fcck. Sie kann n\u00fctzlich sein, wenn vorhandene oder bereitgestellte INI-Werte in einer PHP-Anwendung geparst werden. Sie erkennt jedoch keine IEC-Suffixe f\u00fcr Datengr\u00f6\u00dfen wie MB, MiB oder GB und ist nicht geeignet, um Standard-Datengr\u00f6\u00dfenwerte in Bytes umzuwandeln.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-new-memory-reset-peak-usage-function\"><b>Neue memory_reset_peak_usage Funktion<\/b><\/h3>\n\n\n\n<p>PHP 8.2 wird eine neue Funktion enthalten, die <a href=\"https:\/\/php.watch\/versions\/8.2\/memory_reset_peak_usage\" target=\"blank&quot;\" rel=\"noopener\"><span style=\"font-family: 'courier new', courier, monospace;\">memory_reset_peak_usage<\/span><\/a> hei\u00dft. Sie wird den durch die Funktion <span style=\"font-family: 'courier new', courier, monospace;\">memory_get_peak_usage<\/span> zur\u00fcckgegebenen Spitzenwertspeicherverbrauch zur\u00fccksetzen.<\/p>\n\n\n\n<p>Diese Funktion wird bei F\u00e4llen hilfreich sein, die das mehrmalige Aufrufen einer Aktion und das Aufzeichnen des Spitzen-Speicherverbrauchs jeder Iteration beinhalten. Entwickler werden in der Lage sein, dieses neue Feature zu nutzen, um den Spitzen-Speicherverbrauch zu jedem beliebigen Zeitpunkt w\u00e4hrend der Lebensdauer der Anfrage zur\u00fcckzusetzen.<\/p>\n\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-readonly-classes\"><b>Schreibgesch\u00fctzte Klassen<\/b><\/h3>\n\n\n\n<p>In PHP 8.1 eingef\u00fchrt, werden Readonly-Eigenschaften in PHP 8.2 erweitert, um syntaktischen Zucker hinzuzuf\u00fcgen, sodass alle Klasseneigenschaften auf einmal schreibgesch\u00fctzt sind:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">readonly class Post\n{\npublic function __construct(\npublic string $title,\npublic Author $author,\npublic string $body,\npublic DateTime $publishedAt,\n) {}\n}<\/pre>\n\n\n\n<p>Dies wird verhindern, dass dynamische Eigenschaften zu Klassen hinzugef\u00fcgt werden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-null-true-and-false-standalone-types\"><b>Null, True und False eigenst\u00e4ndige Typen<\/b><\/h3>\n\n\n\n<p>In PHP 8.2 wird der R\u00fcckgabetyp von false als eigenst\u00e4ndiger Typ verf\u00fcgbar sein, anstatt streng als Unionstyp, wenn ein Fehler auftritt, was bereits m\u00f6glich ist:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">function alwaysFalse(): false\n{\nreturn false;\n}<\/pre>\n\n\n\n<p>Das Gleiche gilt f\u00fcr den Null-Typ. Zum Beispiel, als eigenst\u00e4ndiger Typ, im Gegensatz zu fr\u00fcher, wird NullPost::getAuthor() nur null zur\u00fcckgeben k\u00f6nnen.<\/p>\n\n\n\n<p>PHP 8.2 erlaubt auch <a href=\"https:\/\/php.watch\/versions\/8.2\/true-type\" target=\"blank&quot;\" rel=\"noopener\">true<\/a> als eigenst\u00e4ndigen Typ.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-deprecate-dynamic-properties\"><b>Dynamische Eigenschaften veralten lassen<\/b><\/h3>\n\n\n\n<p><a href=\"https:\/\/php.watch\/versions\/8.2\/dynamic-properties-deprecated\" target=\"blank&quot;\" rel=\"noopener\">Dynamische Eigenschaften<\/a> werden in PHP 8.2 als veraltet markiert und f\u00fchren in PHP 9.0 zu einer ErrorException. Diese Eigenschaften werden an einem Objekt festgelegt:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">class Post\n{\npublic string $title;\n}\n\n\/\/ \u2026\n\n$post-&gt;name = 'Name';<\/pre>\n\n\n\n<p>Dynamische Eigenschaften erm\u00f6glichen Flexibilit\u00e4t beim Erstellen von Klassen (z. B. Wertobjekten) ohne eine strikte Klassendeklaration. Ihre Abschaffung wird wahrscheinlich ein Problem f\u00fcr Entwickler darstellen, die auf dynamische Eigenschaften angewiesen sind, da sie mehr zu statischen Analysen gedr\u00e4ngt werden. Aus diesem Grund sind einige Entwickler besorgt \u00fcber diese \u00c4nderung mit PHP 8.2.<\/p>\n\n\n\n<p>Jedoch unterst\u00fctzen Klassen, die __get und __set verwenden, nach wie vor dynamische Eigenschaften, ebenso wie Objekte von stdClass.<\/p>\n\n\n\n<p>Alternativ k\u00f6nnen Entwickler das neue <a href=\"https:\/\/php.watch\/versions\/8.2\/AllowDynamicProperties\" target=\"blank&quot;\" rel=\"noopener\">#[AllowDynamicProperties]Attribut<\/a>, das im globalen Namensraum deklariert wird, f\u00fcr Klassen verwenden, um diese Eigenschaften zu nutzen:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#[AllowDynamicProperties]\nclass User() {}\n$user = new User();\n$user-&gt;foo = 'bar';<\/pre>\n\n\n\n<p>Obwohl es nicht empfohlen wird, besteht eine weitere M\u00f6glichkeit darin, die Warnungen vor Veraltungen zu deaktivieren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-new-n-modifier\"><b>Neu \/n Modifikator<\/b><\/h3>\n\n\n\n<p>PHP 8.2 wird Unterst\u00fctzung f\u00fcr den <a href=\"https:\/\/php.watch\/versions\/8.2\/preg-n-no-capture-modifier\" target=\"blank&quot;\" rel=\"noopener\">\/n (no capture) Modifier<\/a> in der preg_* Funktionsfamilie enthalten. Wenn verwendet, werden Gruppen mit() Meta-Zeichen nicht erfassen, abgesehen von benannten erfassten Gruppen. Im Wesentlichen ist das Ergebnis dasselbe, wie wenn jede Gruppe als nicht erfassend markiert w\u00e4re.<\/p>\n\n\n\n<p>Der Grund f\u00fcr diese \u00c4nderung ist, dass der Modifikator komplexe regul\u00e4re Ausdr\u00fccke f\u00fcr mehrere Gruppen vereinfacht. Anstatt jede Gruppe als nicht erfassend zu kennzeichnen, k\u00f6nnen Entwickler alle Gruppen als nicht erfassend markieren. Dann k\u00f6nnen sie spezifische Gruppen ausw\u00e4hlen und benennen, die erfassen m\u00fcssen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-redact-parameters-in-back-traces\"><b>Parameter in R\u00fcckverfolgungen schw\u00e4rzen<\/b><\/h3>\n\n\n\n<p>Viele Entwickler verwenden Dienste, die Stack-Traces und Produktionsfehler aus Codebasen verfolgen. Diese Dienste k\u00f6nnen Benutzer benachrichtigen, wenn etwas schief geht. Zum Beispiel ist das Verfolgen von Call-Stacks hilfreich beim Debuggen einer Anwendung.<\/p>\n\n\n\n<p>Manchmal k\u00f6nnen jedoch Stack-Trace-Informationen sensible Daten enthalten, wie Benutzernamen und Passw\u00f6rter. PHP 8.2 wird ein <a href=\"https:\/\/php.watch\/versions\/8.2\/backtrace-parameter-redaction\" target=\"blank&quot;\" rel=\"noopener\">#[SensitiveParameter]-Attribut<\/a> enthalten, das verhindert, dass diese Informationen in Stack-Trace-Informationen aufgenommen werden, wenn Probleme auftreten:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">function test(\n$foo,\n#[SensitiveParameter] $bar,\n$baz\n) {\nthrow new Exception('Error');\n}\n\ntest('foo', 'bar', 'baz');<\/pre>\n\n\n\n<p>PHP 8.2 wird die sensiblen Parameter verwenden, um private Informationen aus Stack-Traces zu schw\u00e4rzen, was sie sicherer macht. Diese Parameter stellen sicher, dass die Daten nicht in Fehlerprotokollen landen. Beachten Sie, dass dieses Attribut nur f\u00fcr Parameter verf\u00fcgbar sein wird.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-deprecate-string-interpolation\"><b>${} String-Interpolation veralten lassen<\/b><\/h3>\n\n\n\n<p>Es gibt mehrere M\u00f6glichkeiten, Variablen mit PHP in Strings einzubetten. Jedoch wird PHP 8.2 zwei Methoden veralten lassen. Die erste ist die Verwendung von ${} in Strings:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\"Hallo ${world}\";<\/pre>\n\n\n\n<p>Die zweite Methode verwendet ${} (variable Variablen):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\"Hallo ${(world)}\";<\/pre>\n\n\n\n<p>Dies wird wahrscheinlich kein bedeutendes Problem f\u00fcr Entwickler sein, da die zwei beliebtesten Methoden der Zeichenketteninterpolation weiterhin funktionieren werden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-deprecate-partially-supported-callables\"><b>Veraltete teilweise unterst\u00fctzte Aufrufbare<\/b><\/h3>\n\n\n\n<p>Ein weiterer veralteter Wechsel wird bei <a href=\"https:\/\/php.watch\/versions\/8.2\/partially-supported-callable-deprecation\" target=\"blank&quot;\" rel=\"noopener\">teilweise unterst\u00fctzten Callables<\/a> sein. Es gibt mehrere M\u00f6glichkeiten, ein Callable in PHP zu erstellen. Es kann entweder mit oder ohne Parameter mit der $callable()-Syntax, der user_call_func(\/a_array), oder unter Verwendung einer Funktion mit einem Callback aufgerufen werden.<\/p>\n\n\n\n<p>Die veralteten aufrufbaren Muster umfassen Folgendes:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$callable = \"self::method\";\n$callable = \"parent::method\";\n$callable = \"static::method\";\n$callable = [\"self\", \"method\"];\n$callable = [\"parent\", \"method\"];\n$callable = [\"static\", \"method\"];\n$callable = [\"MyClass\", \"MyParentClass::myMethod\"];\n$callable = [new MyClass(), \"MyOtherClass::myMethod\"];<\/pre>\n\n\n\n<p>Ab PHP 8.2 f\u00fchrt der Aufruf einer der oben genannten Funktionen zu folgender Veraltungsbenachrichtigung:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">class Test {\npublic static function myMethod(): void {\necho \"Called\";\n}<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">public static function call(): void {\n$callable = 'self::myMethod';\ncall_user_func($callable);\n}\n}<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">$callable = Test::call();\n\/\/ \"Called\";<\/pre>\n\n\n\n<p>Allerdings f\u00fchrt das \u00dcbergeben dieser Aufrufbaren an die <span style=\"font-family: 'courier new', courier, monospace;\">is_callable<\/span> Funktion oder die Verwendung mit den aufrufbaren Parametertypen nicht zur Generierung der Abschaffungsnachricht. Um die Abschaffungsbenachrichtigung zu vermeiden, k\u00f6nnen Entwickler stattdessen die Schl\u00fcsselw\u00f6rter parent, self und static in aufrufbarem Code in ihre jeweiligen Klassennamen mit der::class Magie-Methode konvertieren.<\/p>\n\n\n\n<p>Ein Teil des Grundes f\u00fcr die \u00c4nderung besteht darin, Aufrufbare f\u00fcr typisierte Eigenschaften verwenden zu k\u00f6nnen. Es macht sie weniger kontextabh\u00e4ngig.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mysqli-can-no-longer-be-compiled-with-libmysql\"><b>MySQLi kann nicht mehr mit libmysql kompiliert werden<\/b><\/h3>\n\n\n\n<p>In der Vergangenheit hat PHP zwei Bibliotheken f\u00fcr die Verbindung mit MySQL-Datenbanken unterst\u00fctzt: mysqlnd und libmysql. Ab PHP 5.4 ist die erstere die Standardbibliothek geworden. Es war jedoch m\u00f6glich, MySQLi \u00fcber Erweiterungen zu kompilieren.<\/p>\n\n\n\n<p>Ab PHP 8.2 wird das Kompilieren einer MySQLi-Erweiterung mit <a href=\"https:\/\/php.watch\/versions\/8.2\/mysqli-libmysql-no-longer-supported\" target=\"blank&quot;\" rel=\"noopener\">libmysql nicht mehr unterst\u00fctzt<\/a>. Ein Versuch dies zu tun, wird zu einem Konfigurationsfehler f\u00fchren:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">.\/configure --with-mysqli=FOO<\/pre>\n\n\n\n<p>Das Verlinken von mysqli gegen externe Bibliotheken wird nicht mehr unterst\u00fctzt<\/p>\n\n\n\n<p>Dies wird wahrscheinlich keine signifikanten Fehler f\u00fcr Entwickler verursachen. Die zwei gr\u00f6\u00dften Merkmale, die von libmysql unterst\u00fctzt werden, die jedoch bei mysqlnd nicht verf\u00fcgbar sind, sind die Unterst\u00fctzung f\u00fcr automatisches Wiederverbinden und Authentifizierung \u00fcber LDAP und SASL.<\/p>\n\n\n\n<h2 id=\"h-keep-your-wordpress-php-version-up-to-date\" class=\"wp-block-heading\"><b>Aktualisieren Sie Ihre WordPress PHP-Version<\/b><\/h2>\n\n\n\n<p>Als Entwickler ist es unerl\u00e4sslich, Ihren Code gegen die kommenden Versionen von PHP zu testen. In diesem Fall sollten Entwickler so bald wie m\u00f6glich beginnen, ihren Code gegen PHP 8.2 zu testen, um sicherzustellen, dass Ihr Code die Websites der Benutzer nicht besch\u00e4digt, wenn sie aktualisieren.<\/p>\n\n\n\n\n<div\n\tclass=\"article-cta-shared article-cta-small\"\n>\n    <div class=\"tr-img-wrap-outer jsLoading\"><img decoding=\"async\" class=\"js-img-lazy \" src=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/lazy-loading-transparent.webp\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/article-small-ad-cta-placeholder.webp 1x, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/article-small-ad-cta-placeholder-x2.webp 2x\"  alt=\"Ad background image\" \/><\/div>\n\n\n\n\n  <div class=\"content-btm\">\n    <h2\n      class=\"h2--md\"\n    >\n      Die perfekte Entwicklungsumgebung\n    <\/h2>\n    <p\n      class=\"p--md\"\n    >\n      Wir sorgen daf\u00fcr, dass Ihre Website schnell, sicher und immer verf\u00fcgbar ist, damit Ihre Besucher Ihnen vertrauen. Tarife beginnen bei $1.99\/Monat.\n    <\/p>\n\n            <a\n            href=\"https:\/\/www.dreamhost.com\/de\/hosting\/\"\n                        class=\"btn btn--white-outline btn--sm btn--round\"\n                                    target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            >\n                            W\u00e4hlen Sie Ihren Tarif                    <\/a>\n\n  <\/div>\n<\/div>\n\n\n","protected":false},"excerpt":{"rendered":"<p>PHP 8.2 soll im November dieses Jahres erscheinen, wobei die aktuellste stabile Version PHP 8.1.5 ist. Obwohl es noch fr\u00fch im Prozess ist, gab es eine gemischte Reaktion auf PHP 8.2 und die Kompatibilit\u00e4t von WordPress-Kern, Plugin und Thema. Das Wissen, was zu erwarten ist, kann Ihnen jedoch helfen, sich auf die neueste PHP [\u2026] vorzubereiten.<\/p>\n","protected":false},"author":1062,"featured_media":34862,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_metadesc":"","toc_headlines":"[[\"h-an-overview-of-php-versions\",\"\u00dcbersicht der PHP-Versionen\"],[\"h-what-s-new-in-php-8-2\",\"Was ist neu in PHP 8.2\"],[\"h-keep-your-wordpress-php-version-up-to-date\",\"Aktualisieren Sie Ihre WordPress PHP-Version\"]]","hide_toc":false,"footnotes":""},"categories":[14491,14509],"tags":[],"class_list":["post-50851","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technischer-austausch-de","category-webdesign-de"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PHP 8.2: Was zu erwarten ist (Entwicklerhandbuch \u2013 Aktualisiert) - DreamHost Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP 8.2: Was zu erwarten ist (Entwicklerhandbuch \u2013 Aktualisiert)\" \/>\n<meta property=\"og:description\" content=\"PHP 8.2 soll im November dieses Jahres erscheinen, wobei die aktuellste stabile Version PHP 8.1.5 ist. Obwohl es noch fr\u00fch im Prozess ist, gab es eine gemischte Reaktion auf PHP 8.2 und die Kompatibilit\u00e4t von WordPress-Kern, Plugin und Thema. Das Wissen, was zu erwarten ist, kann Ihnen jedoch helfen, sich auf die neueste PHP [\u2026] vorzubereiten.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/\" \/>\n<meta property=\"og:site_name\" content=\"DreamHost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreamHost\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-13T14:00:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-17T01:38:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2022\/06\/Latest-PHP-Update-Feature.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"598\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jason Cosper\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:site\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jason Cosper\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PHP 8.2: Was zu erwarten ist (Entwicklerhandbuch \u2013 Aktualisiert) - DreamHost Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/","og_locale":"en_US","og_type":"article","og_title":"PHP 8.2: Was zu erwarten ist (Entwicklerhandbuch \u2013 Aktualisiert)","og_description":"PHP 8.2 soll im November dieses Jahres erscheinen, wobei die aktuellste stabile Version PHP 8.1.5 ist. Obwohl es noch fr\u00fch im Prozess ist, gab es eine gemischte Reaktion auf PHP 8.2 und die Kompatibilit\u00e4t von WordPress-Kern, Plugin und Thema. Das Wissen, was zu erwarten ist, kann Ihnen jedoch helfen, sich auf die neueste PHP [\u2026] vorzubereiten.","og_url":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/","og_site_name":"DreamHost Blog","article_publisher":"https:\/\/www.facebook.com\/DreamHost\/","article_published_time":"2022-10-13T14:00:48+00:00","article_modified_time":"2025-01-17T01:38:20+00:00","og_image":[{"width":900,"height":598,"url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2022\/06\/Latest-PHP-Update-Feature.jpeg","type":"image\/jpeg"}],"author":"Jason Cosper","twitter_card":"summary_large_image","twitter_creator":"@dreamhost","twitter_site":"@dreamhost","twitter_misc":{"Written by":"Jason Cosper","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/#article","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/"},"author":{"name":"Jason Cosper","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/2273b8bf7336df78f6d99a89c17253c4"},"headline":"PHP 8.2: Was zu erwarten ist (Entwicklerhandbuch \u2013 Aktualisiert)","datePublished":"2022-10-13T14:00:48+00:00","dateModified":"2025-01-17T01:38:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/"},"wordCount":1824,"publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/06\/Latest-PHP-Update-Feature.jpeg","articleSection":["Technischer Austausch","Webdesign"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/","name":"PHP 8.2: Was zu erwarten ist (Entwicklerhandbuch \u2013 Aktualisiert) - DreamHost Blog","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/#primaryimage"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/06\/Latest-PHP-Update-Feature.jpeg","datePublished":"2022-10-13T14:00:48+00:00","dateModified":"2025-01-17T01:38:20+00:00","breadcrumb":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/#primaryimage","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/06\/Latest-PHP-Update-Feature.jpeg","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/06\/Latest-PHP-Update-Feature.jpeg","width":900,"height":598,"caption":"what to expect with PHP 8.2"},{"@type":"BreadcrumbList","@id":"https:\/\/www-dev.dreamhost.com\/blog\/de\/php-82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dhblog.dream.press\/blog\/"},{"@type":"ListItem","position":2,"name":"PHP 8.2: Was zu erwarten ist (Entwicklerhandbuch \u2013 Aktualisiert)"}]},{"@type":"WebSite","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website","url":"https:\/\/www-dev.dreamhost.com\/blog\/","name":"DreamHost Blog","description":"","publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www-dev.dreamhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization","name":"DreamHost","url":"https:\/\/www-dev.dreamhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","contentUrl":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","width":1200,"height":168,"caption":"DreamHost"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreamHost\/","https:\/\/x.com\/dreamhost","https:\/\/www.instagram.com\/dreamhost\/","https:\/\/www.linkedin.com\/company\/dreamhost\/","https:\/\/www.youtube.com\/user\/dreamhostusa"]},{"@type":"Person","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/2273b8bf7336df78f6d99a89c17253c4","name":"Jason Cosper","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/02\/IMG_4807-scaled.jpeg","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/02\/IMG_4807-scaled.jpeg","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/02\/IMG_4807-scaled.jpeg","caption":"Jason Cosper"},"description":"Jason is DreamHost\u2019s WordPress Product Advocate, based out of Bakersfield, CA. He is currently working on making our DreamPress product even better. In his free time, he likes to curl up on the couch and watch scary movies with his wife Sarah and three very small dogs. Follow him on Twitter.","url":"https:\/\/www-dev.dreamhost.com\/blog\/author\/jasoncosper\/"}]}},"lang":"de","translations":{"de":50851,"es":34876,"en":34859,"pt":51398,"pl":51402,"ru":51405,"uk":51416,"it":68537,"fr":70669,"nl":70695},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/50851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/users\/1062"}],"replies":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/comments?post=50851"}],"version-history":[{"count":4,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/50851\/revisions"}],"predecessor-version":[{"id":63899,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/50851\/revisions\/63899"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media\/34862"}],"wp:attachment":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media?parent=50851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=50851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=50851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}