Heute ist die offizielle Veröffentlichung von PHP 8.2.
Und Sie können es bereits in allen Ihren Upsun-Projekten verwenden, mit einer einzigen Codeänderung in Ihrer .upsun.app.yaml
:
type: php:8.2
Probiere es noch heute aus!
PHP 8.2 führt einige ziemlich coole neue Funktionen ein, darunter:
Im Folgenden finden Sie eine kurze Übersicht über die einzelnen neuen Funktionen und wie sie Ihnen die Arbeit erleichtern sollen.
In PHP 8.1 wurde die Unterstützung für schreibgeschützte Klasseneigenschaften hinzugefügt. Das neue PHP 8.2 unterstützt nun die Deklaration einer ganzen Klasse als schreibgeschützt.
Readonly-Klassen werden mit dem Schlüsselwort readonly vor der Klassendeklaration deklariert:
readonly class MyValueObject { public string $myValue; }
Kopieren Sie das Snippet
Abstrakte Klassen und finale Klassen können ebenfalls als "readonly" deklariert werden. Die Reihenfolge der Schlüsselwörter spielt dabei keine Rolle, was die Sache recht einfach macht.
abstract readonly class Foo {} final readonly class Bar {}
Kopieren Sie das Snippet
Es ist auch möglich, eine readonly-Klasse zu deklarieren, die keine Eigenschaften enthält. Dadurch werden dynamische Eigenschaften effektiv verhindert, während untergeordnete Klassen ihre readonly-Eigenschaften explizit deklarieren können.
Mit PHP 8.2 wird eine neue PHP-Erweiterung namens random eingeführt, die bestehende PHP-Funktionen im Zusammenhang mit der Erzeugung von Zufallszahlen organisiert und konsolidiert.
Sie führt auch eine Reihe von PHP-Klassenstrukturen und Ausnahmeklassen ein, um eine granulare Auswahl des Zufallszahlengenerators und der Ausnahmebehandlung zu ermöglichen.
Eine weitere neue Funktion von PHP 8.2 ist die disjunktive Normalform (DNF), eine Standardmethode zur Organisation von booleschen Ausdrücken.
Konkret bedeutet das, dass Sie einen booleschen Ausdruck in eine ODER-verknüpfte Reihe von ANDs strukturieren können. Bei der Anwendung auf Typdeklarationen ermöglicht dies eine Standardmethode, um kombinierte Vereinigungs- und Schnittpunkttypen zu schreiben, die der Parser verarbeiten kann.
In PHP 8.2 ist es nun möglich, sensible Parameter mit einem PHP-Attribut namens SensitiveParameter zu markieren, was PHP dazu veranlasst, die sensiblen Informationen aus dem Stacktrace zu entfernen.
function passwordHash(#[\SensitiveParameter] string $password) { var_dump(debug_backtrace()); } passwordHash('hunter2');
Kopieren Sie das Snippet
Das Deklarieren von Konstanten in Traits wird nun ebenfalls unterstützt. Trait-Konstanten können auch mit Sichtbarkeitsmodifikatoren und als final deklariert werden (seit PHP 8.1).
Alle der folgenden Konstanten-Deklarationen sind in PHP 8.2 und höher gültig:
trait FooBar { const FOO = 'foo'; private const BAR = 'bar'; final const BAZ = 'baz'; final protected const QUX = 'qux'; } class Test { use FooBar; } echo Test::BAZ; // 'baz'
Kopieren Sie das Snippet
PHP 8.2 führt einige Verwerfungen ein, wie z.B. die Dynamischen Eigenschaften, die '${}'-String-Interpolation, die teilweise unterstützten Callables und dieMethoden 'utf8_encode' und 'utf8_decode'.
Zend Thread Safe (ZTS) wurde von unseren PHP-Images seit der Version 7.1 unterstützt.
Da die Nutzung jedoch abgenommen hat und Erweiterungen die Unterstützung eingestellt haben, wird ZTS in der Version 8.2 unseres PHP-Images und in zukünftigen Versionen nicht mehr unterstützt.
Einige PHP-Erweiterungen sind in PHP 8.2 möglicherweise nicht verfügbar. Während einige Erweiterungen bereits verfügbar sind, müssen Sie auf andere möglicherweise noch warten, z. B. newrelic, ioncube, sourceguardian, event, interbase, mongodb, oauth, pdo_sqlsrv, tideways und xdebug.
Sie werden schrittweise eingeführt, und sobald sie verfügbar sind, wird die Dokumentation entsprechend aktualisiert. Alles, was Sie tun müssen, ist, Ihre .upsun.app.yaml-Datei
zu aktualisieren, um sie zu aktivieren und die neue Konfiguration zu pushen.
Composer, der PHP-Abhängigkeitsmanager, wurde auf Composer 2 aktualisiert.
Aber keine Sorge, Composer 2 wird größtenteils mit Ihren bestehenden Arbeitsabläufen kompatibel sein und bringt großartige neue Funktionen mit sich, darunter schnellere Download-Zeiten und Prüfungen der Plattformanforderungen während der Laufzeit.
In der Zwischenzeit wird PHP 8.2 ab seinem Veröffentlichungsdatum am 8. Dezember 2022 auch mit Blackfire funktionieren!
Mehr über PHP 8.2 mit Blackfire erfahren Sie in unserem Blog.
Wie Sie sich vielleicht denken können, führt PHP 8.2 einige Änderungen ein, die sich auf älteren Code auswirken können. Daher sollten Sie Ihre Anwendung in einer Entwicklungsumgebung testen.
Legen Sie dazu zunächst einen neuen Zweig in Ihrem Repository an. Aktualisieren Sie dann Ihre ./.upsun/config.yaml
in diesem Zweig und ändern Sie den Typschlüssel. Testen Sie anschließend Ihre Anwendung und fügen Sie den Zweig bei Erfolg zusammen.
$ upsun checkout main $ upsun branch upgrade-php-8.2
Ändern Sie die php-Version in der Datei ./.upsun/config.yaml
von php:8.1
auf php:8.2
# ./.upsun/config.yaml type: php:8.2 $ git add ./.upsun/config.yaml && git commit -m "Upgrade PHP to v8.2" $ upsun deploy
Testen Sie Ihre Anwendung
$ upsun checkout main $ upsun merge upgrade-php-8.2
Glückwunsch! Sie verwenden jetzt PHP 8.2 in der Produktion.
Und wenn Sie auf neue oder verbesserte Funktionen stoßen oder diese vorschlagen möchten, teilen Sie uns dies bitte in unserem GitHub Repository mit.
Sie können auch eine Unterhaltung über jedes Upsun.com-bezogene Thema auf unserer Community-Websitebeginnen .
Viel Spaß beim Deployen!
Nützliche Links: