Zuletzt aktualisiert am

PHP 8.5 führt URL-Erweiterung, Pipe-Operator und Syntaxverbesserungen ein

PHP 8.5 führt eine neue URL-Erweiterung, den Pipe-Operator und wichtige Syntax-Upgrades ein, die für eine schnellere Leistung und einen übersichtlicheren Code sorgen.
Eine Übersetzung von 🇬🇧 Linuxiac.com

PHP, eine serverseitige Programmiersprache, die hauptsächlich für die Erstellung dynamischer Websites und Webanwendungen verwendet wird, hat gerade die Version 8.5 veröffentlicht, ein umfangreiches Update, das neue Syntax, erweiterte Attributunterstützung, Leistungsverbesserungen und mehrere RFC-gesteuerte Funktionen hinzufügt.

Eine der wichtigsten Neuerungen ist die neue integrierte URL-Erweiterung. Sie bietet eine konsistente API zum Parsen und Ändern von URLs, die sowohl dem RFC 3986 als auch den WHATWG-URL-Standards entspricht. Unterstützt durch uriparser und Lexbor ersetzt sie parse_url() in Szenarien, in denen eine genaue, standardkonforme Verarbeitung erforderlich ist.

Ein weiteres wichtiges Highlight dieser Version ist die Einführung des Pipe-Operators (|>), der eine Funktionsverkettung von links nach rechts ermöglicht. Dadurch entfallen tief verschachtelte Funktionsaufrufe, wodurch Transformations-Pipelines leichter zu lesen und zu warten sind. Werte werden direkt durch Callables weitergegeben, einschließlich Pfeilfunktionen und partieller Anwendungen wie trim(...).

PHP 8.5 verbessert auch die Objektverarbeitung mit der Syntax „clone-with“. Entwickler können nun ausgewählte Eigenschaften aktualisieren, während sie ein Objekt mit clone($obj, ['prop' => value]) klonen, wodurch das „with-er“-Muster vereinfacht und in schreibgeschützten Klassen ohne Boilerplate verwendbar wird.

Eine weitere Neuerung ist das Attribut #[\NoDiscard], das eine Warnung ausgibt, wenn der Rückgabewert einer Funktion unbeabsichtigt ignoriert wird. Dies hilft dabei, Fehler in APIs zu erkennen, in denen ein Rückgabewert für das korrekte Verhalten erforderlich ist, wobei (void) verfügbar ist, wenn der Entwickler sich ausdrücklich dafür entscheidet, ihn zu verwerfen.

Die Sprache erweitert auch die Unterstützung für Ausdrücke zur Kompilierungszeit. Statische Closures und First-Class-Callables sind nun in konstanten Ausdrücken zulässig, sodass sie in Attributargumenten, Standard-Eigenschaftswerten und Klassenkonstanten verwendet werden können.

Zu den leistungsbezogenen Verbesserungen gehören persistente cURL-Share-Handles. Mit curl_share_init_persistent() bleiben Share-Handles über mehrere Anfragen hinweg erhalten und verwenden zuvor initialisierte Verbindungsdaten wieder, wodurch der Overhead bei wiederholten Netzwerkoperationen für lang laufende Anwendungen reduziert wird.

Zwei neue Hilfsfunktionen, array_first() und array_last(), bieten eine übersichtlichere Handhabung für häufige Fälle. Beide geben für leere Arrays null zurück, was die Zusammensetzung mit dem Null-Koaleszenzoperator vereinfacht und manuelle Schlüsselprüfungen überflüssig macht.

Weitere Änderungen betreffen eine Vielzahl von Sprachfunktionen. Schwerwiegende Fehler enthalten nun Backtraces, Attribute können auf Konstanten abzielen und statische Eigenschaften unterstützen asymmetrische Sichtbarkeit.

Eigenschaften können über die Konstruktor-Eigenschaftsförderung als final markiert werden. Außerdem fügt PHP neue DOM-Methoden wie getElementsByClassName() und insertAdjacentHTML() sowie neue Hilfsfunktionen wie grapheme_levenshtein() hinzu.

Zu den Abkündigungen in PHP 8.5 gehören schließlich die Entfernung nicht kanonischer Cast-Namen, die Abkündigung des Backtick-Operators als Alias für shell_exec(), Warnungen bei ungültigen Float-zu-Int-Casts und Einschränkungen bei der Verwendung von null als Array-Offset. Die älteren Serialisierungsmethoden __sleep() und __wakeup() sind nun zugunsten von __serialize() und __unserialize() als veraltet gekennzeichnet.

Weitere Informationen zu allen Änderungen in PHP 8.5 finden Sie in der offiziellen Ankündigung zur Veröffentlichung oder auf dieser Seite.

 

Spendieren Sie Bobby einen ☕ Ko-fi

Ein Service von s3n🧩net

Comments