Die neue PHP 8.0 Major Version

Nach 3-jähriger Entwicklungsphase ist es am Donnerstag, den 26. November 2020, endlich so weit. Die neue Major Version PHP 8.0 wird veröffentlicht. Diese bringt eine Vielzahl an Änderungen, neue Features und Fehlerbehebungen mit sich.

PHP 8.0 als Major Version

Worauf dürfen wir uns bei PHP 8.0 freuen?

Weak Maps

Mit dem neuen Major Update von PHP werden sogenannte Weak Maps eingeführt. Hierbei handelt es sich um eine neue Art Variablen anzulegen, welche Auswirkungen auf das Verhalten des Garbage Collectors hat.

Vor PHP 8.0:

Wenn eine PHP Variable gelöscht wird, prüft der Garbage Collecotor ob es andere Variablen gibt, die auf dasselbe Objekt zeigen. Werden keine Variablen gefunden, wird das Objekt aus dem Speicher gelöscht. Dadurch wird die Speicherperformance erhöht.

Ab PHP 8.0:

Die schwachen Variablen (Weak Maps) verhalten sich im Prinzip wie alle anderen Variablen auch. Der Unterschied findet sich bei der Prüfung durch den Garbage Collector. Im Grunde genommen bleiben Weak Maps bei dessen Prüfung unberücksichtigt. Gibt es also nur noch schwache Variablen, die auf ein Objekt zeigen, wird bei PHP 8.0 das zugrunde liegende Objekt trotzdem gelöscht. Dadurch kann noch mehr Speicher freigegeben werden.

Constructor Promoted Properties

Durch Constructor Promoted Properties lassen sich Codezeilen einsparen. Dabei ändert sich die Vorgehensweise für die Deklaration und Zuweisung von Variablen.

PHP 7.4 und älter:

Eigenschaften müssen in der Klasse deklariert werden. Infolgedessen erfolgt die Zuweisung der Parameter im Konstruktor der Klasse.

<?php

class Auto
{
    private string $marke;
    private string $farbe;
    private string $modell;

    public function __construct(
        string $marke = 'BMW',         
        string $farbe = 'blau',
        string $modell = 'X3'
    ) {
        $this->marke = $marke;
        $this->farbe = $farbe;
        $this->modell = $modell;
    }
}

PHP 8.0:

Die Deklaration und Zuweisung der Variablen ist in der Parameterliste des Konstruktors möglich.

<?php

class Auto
{
    public function __construct(
        private string $marke = 'BMW', 
        private string $farbe = 'blau',
        private string $modell = 'X3'
    ) { }
}

JIT-Compiler

Die PHP Version 8.0 verfügt über einen JIT-Compiler. Wobei Sie für sich entscheiden können, ob Sie davon Gebrauch machen wollen oder nicht. Der JIT-Compiler lässt sich also jederzeit vom Benutzer in den Einstellungen deaktivieren. Damit Sie sich die verbesserte Performance nicht entgehen lassen, ist die Nutzung sehr zu empfehlen.

Attribute

Bisher sind nur doc-Kommentare in einer unstrukturierten Form möglich. Stattdessen können in PHP 8.0 Attribute in der Codestruktur angelegt werden. Diese sollen der maschinellen Dokumentation dienen. Diese Metadatenlemente können an PHP Klassen, Funktionen, Methoden, Parametern, Eigenschaften und Konstanten angefügt werden.

Neue Funktionen

Das Update wird mit einer Hand voll neuer Funktionen ausgeliefert:

  • str_contains() function
  • fdiv function() function
  • get_resource_id() function
  • get_debug_type() function
  • str_starts_with() function
  • str_ends_with() function
  • preg_last_error_msg() function

Union Types 2.0

Vor PHP 8.0 konnte man nur einzelne Typen für Eigenschaften, Rückgabeparameter und Übergabeparameter definieren. Künftig erlaubt Ihnen PHP die Deklaration von beliebig vielen Typen mit der Syntax x1|x2|x3|…

Arrays mit negativem Index

In den alten PHP-Versionen ist es möglich für ein Array einen negativen Startwert festzulegen. Allerdings wurde bisher beim Durchführen eines Appends immer mit 0 weitergearbeitet. In Zukunft wird es möglich sein Arrays, mit negativen Index, ohne Unterbrechung anzulegen.

Beispiel vor dem PHP 8.0 Release:

Die Anlage eines Arrays mit Startwert -4 führt bei 3 Appends zu den Indizes -4, 0, 1, 2.

Beispiel nach dem PHP 8.0 Release:

Die Anlage eines Arrays mit Startwert -4 führt mit 3 Appends führt zu den Indizes -4, -3, -2, -1.

Es gibt noch weitaus mehr Änderungen. Diese können Sie in den Ankündigungen zu PHP 8.0 auf der Webseite von PHP nachlesen.

Wann muss ich auf PHP 8.0 umsteigen?

Wie in der Softwareentwicklung üblich gibt es auch bei PHP einen Produktlebenszyklus, in der der Hersteller sicherheitsrelevante und fehlerbehebende Updates entwickelt.

Dieser Phasen lassen sich folgendermaßen einteilen:

1

Aktiver Support:

Die Version wird aktiv unterstützt. Gemeldete Fehler und Sicherheitsprobleme werden behoben.

2

Security Updates:

Der Support wird auf die Behandlung kritischer Sicherheitsprobleme beschränkt.

3

Lebensende:

Die PHP-Version wird nicht mehr vom Hersteller unterstützt. Aus diesem Grund wird ein schneller Wechsel auf die aktuelle Version wird empfohlen.

Der vom Entwickler veröffentlichten Roadmap können Sie die Aktualität Ihrer PHP-Version prüfen. Entsprechend sollten Sie den Lebenszyklus im Auge behalten. Damit kann Ihre Webanwendung den strengen Anforderungen an Sicherheit und Performance gerecht werden.

Bereits jetzt PHP 8.0 bei SPIEGLHOF media testen.

Auf Ihren Wunsch können wir Ihnen ab sofort die Vorschauversion von PHP 8.0 auf Ihrem Managed Server oder in Ihrem Webspace bereitstellen.

Die Vorschauversion eignet sich sehr gut für Entwickler, die erste Erfahrungen mit PHP 8.0 sammeln möchten. Dadurch können Sie neue Funktionen testen und die Systemkompatibilität Ihrer Webanwendungen mit der neuen Version prüfen.

Hinweis: Da die Entwicklungsarbeiten noch nicht vollständig abgeschlossen wurden, warnen wir vor dem Produktiveinsatz und empfehlen die ausschließliche Nutzung zu Testzwecken.

Die neue Version war bei uns bereits im Einsatz, deshalb möchten wir Sie auf folgendes hinweisen: In der Vorschauversion sind noch nicht alle üblichen Extensions enthalten, sondern werden erst bis zum Release verfügbar sein.

Persönlich für Sie da.

Falls Sie nach einem Dienstleister suchen, der Ihren Webspeicherplatz regelmäßig für die neuste PHP-Version nutzbar macht, steht Ihnen das SPIEGLHOF media Team sehr gerne zur Verfügung.

Noch Fragen?

    Patrick Greiler, Ansprechpartner für den Bereich Webdesign in unserer Webagentur

    Patrick Greiler
    Geschäftsführer

    Patrick Greiler, Geschäftsführer

    +49 871 20667926

    Schreiben Sie einen Kommentar

    Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert. Bitte habe Verständnis, dass dein Kommentar erst durch einen Moderator freigegeben wird.