PHP 8.3 ist verfügbar

PHP 8.3 Logo

Das PHP-Entwicklerteam stellt jedes Jahr gegen Ende November eine neue Version der von vielen bekannten Web-Anwendungen genutzten Skriptsprache PHP bereit. Heute ist die PHP-Version 8.3 erschienen, die Sie ab sofort auf unseren Webservern nutzen können.

Neuerungen in PHP 8.3

Die meisten Neuerungen in PHP 8.3 betreffen Softwareentwickler, die neue Funktionen und Attribute verwenden können.

Für JSON-Zeichenketten gibt es eine neue Funktion json_validate(), mit der diese auf syntaktische Gültigkeit geprüft werden kann. Bisher musste dazu die Funktion json_decode() genutzt werden, die jedoch deutlich langsamer ist und wesentlich mehr Speicher benötigt, was bei sehr langen JSON-Zeichenketten zu Problemen führen kann.

Eine weitere Neuerung ist das Attribut #[Override], mit dem eine Methode anzeigen kann, dass sie eine Methode einer übergeordneten Klasse überschreibt. Falls sich der Name oder die Signatur der Methode in der übergeordneten Klasse z.B. nach einem Update ändert, würde dies häufig unbemerkt bleiben, und könnte zu unerwarteten Problemen führen. Durch das Override-Attribut würde es in diesem Fall eine eindeutige Fehlermeldung geben, und die Anwendungsentwickler können das Problem sofort erkennen und beheben.
Für JSON-Zeichenketten gibt es eine neue Funktion json_validate(), mit der diese auf syntaktische Gültigkeit geprüft werden kann. Bisher musste dazu die Funktion json_decode() genutzt werden, die jedoch deutlich langsamer ist und wesentlich mehr Speicher benötigt, was bei sehr langen JSON-Zeichenketten zu Problemen führen kann.

Eine weitere Neuerung ist das Attribut #[Override], mit dem eine Methode anzeigen kann, dass sie eine Methode einer übergeordneten Klasse überschreibt. Falls sich der Name oder die Signatur der Methode in der übergeordneten Klasse z.B. nach einem Update ändert, würde dies häufig unbemerkt bleiben, und könnte zu unerwarteten Problemen führen. Durch das Override-Attribut würde es in diesem Fall eine eindeutige Fehlermeldung geben, und die Anwendungsentwickler können das Problem sofort erkennen und beheben.

Beispiel

abstract class ParentClass {
    public function MethodImplementation(): int {
        return 1;
    }
}

final class ChildClass extends ParentClass {
    #[Override]
    public function MethodImplementation(): int {
        return 2;
    }
}

Angenommen, der Name der Methode MethodImplementation() ändert sich wie folgt:

abstract class ParentClass {
    public function NewMethodImplementation(): int {
        return 1;
    }
}

Dann gäbe es in der abgeleiteten Klasse eine Fehlermeldung, und der Name der Methode müsste angepasst werden.

Ebenfalls neu ist die Möglichkeit Typen für Klassenkonstanten festzulegen. Dies verbessert die Typsicherheit bei abgeleiteten Klassen oder Interface-Implentierungen.

Beispiel

class ConstantTest {
    const string TEST_CONSTANT = 'test';
}

Die in PHP-Version 8.2 modernisierte Random-Extension wurde außerdem um einige neue Funktionen erweitert. Besonders interessant ist die Funktion getBytesFromString(), die eine Zeichenkette mit vorgegebener Länge aus vorgegebenen Zeichen erzeugt, damit lassen sich z.B. sehr einfach Passwörter generieren.

Eine Übersicht über alle Neuerungen und Änderungen sowie Hinweise zur Migration von älteren PHP-Versionen finden sie hier.

Da es in PHP 8.3 kaum schwerwiegende nicht abwärtskompatible Änderungen zur Vorgängerversion 8.2 gibt, sollten viele Web-Anwendungen bereits mit PHP 8.3 kompatibel sein.

PHP 8.3 aktivieren

Sie können PHP 8.3 wie gewohnt über das Kundenmenü oder auf den Webservern per .htaccess-Konfigurationsdatei mittels folgender Direktive auswählen:

AddHandler application/x-httpd-php83 .php

PHP 8.0 End of Life

Etwa zeitgleich mit der Veröffentlichung von PHP 8.3 stellen die PHP-Entwickler die Unterstützung der PHP-Version 8.0 vollständig ein. Für die PHP Version 8.1 wird es ab Dezember nur noch Updates bei sicherheitskritischen Fehlern geben, nur die PHP-Versionen 8.2 und 8.3 werden dann noch vollständig unterstützt.

Falls Sie noch eine ältere PHP-Version als 8.1 für Ihre Web-Anwendungen nutzen, sollten Sie diese möglichst bald auf PHP 8.1 oder neuer umstellen.

Wir werden für ältere nicht mehr unterstützte PHP-Versionen weiterhin regelmäßig zurückportiere Sicherheitsupdates bereitstellen, es gibt aber keine Garantie, dass alle eventuell bestehenden Sicherheitslücken zeitnah geschlossen werden.