Auf der Zielgeraden zum Release?

PHP 8.0: „Momentan ist es fast unmöglich, ein Datum für die Veröffentlichung vorherzusehen“
Keine Kommentare

Pünktlich zum 25. jährigen Jubiläum von PHP wird das Release der Version 8.0 erwartet. Da es derzeit noch keinen festen Zeitplan gibt, haben wir mit Níckolas Da Silva, Senior Full Stack Engineer, ein Interview darüber geführt, was von der neuen Version zu erwarten ist. Und auch die Gerüchte, PHP 8 würde eventuell gar nicht mehr veröffentlicht, haben wir thematisiert.

Für die Programmiersprache PHP soll in diesem Jahr eine neue Major-Version erscheinen. Genaueres zu PHP 8.0 ist bisher nicht bekannt. Wir haben mit Níckolas Da Silva, Senior Full Stack Engineer, über den aktuellen Stand der Dinge gesprochen.

PHP 8.0: Der Status quo

Entwickler: Was kannst du derzeit über das Veröffentlichungsdatum von PHP 8.0 sagen?

Níckolas Da Silva: Momentan ist es fast unmöglich, ein Datum für die Veröffentlichung von PHP 8.0 vorherzusehen, da die Version 7.4 vor weniger als drei Monaten veröffentlicht wurde. Es gab einige Diskussionen auf der Mailingliste, in denen vorgeschlagen wurde, die Version 8.0 kurz nach der Veröffentlichung von PHP 7.4 für die Alpha-Version zu öffnen.

Eine Möglichkeit für 2020 wäre, eine monatliche Vorschau zu veröffentlichen, bis die Alpha-Version erreicht wird. Vorgeschlagen wurde das von Sara Golemon.

Auf einigen Websites gibt es bereits Verwirrung um das Thema, da behauptet wird, dass PHP 8 möglicherweise gar nicht mehr herauskommen wird. Hauptsächlich aufgrund des Beitrags von Dmitry Stogov, Matthew Weier O’Phinney und Enrico Zimuel. Aber das ändert nicht viel: Die Entwicklung von PHP 8 ist immer noch stark und schnelllebig.

Der Just In Time Compiler ist definitiv der größte Deal für diese Version. Er bringt praktisch keine Änderungen am Aussehen des Codes, aber voraussichtlich viele unerwartete Verhaltensweisen für die PHP-Plattformen. Ich bin daher der festen Überzeugung, dass viele Vorabversionen im Jahr 2020 geliefert werden, bevor wir auf den Alpha-Status stoßen, um sicherzustellen, dass alle aktuellen Funktionen stabil sind.

Entwickler: Welche Funktionen sind für PHP 8.0 bereits bestätigt?

Da Silva: Der Just In Time (JIT)-Compiler wird implementiert sein. Da er die Interpretation von PHP ändert, kann ich an dieser Stelle kein Code-Beispiel geben.

Ebenfalls an Bord sein werden Union Types. Sie werden ermöglichen, dass variable Typen mehr als eine Typ-Möglichkeit besitzen. Ein Beispiel aus dem offiziellen Feature-Vorschlag ist folgendes:

class Number {
private int|float $number;
public function setNumber(int|float $number): void {
$this->number = $number;
}
public function getNumber(): int|float {
return $this->number;
}
}

Hier ist zu sehen, wie $number entweder ein int oder float sein kann.

Darüberhinaus wurde eine neue Klasse namens WeakMap hinzugefügt. Diese Klasse ermöglicht es Benutzern, Maps zu erstellen, bei denen Objects als Keys verwendet werden (wie z.B. der SplObjectStorage). Der Trick dabei ist, dass diese Referenz zwischen Objects und Maps selbst eine schwache Referenz ist. Das heißt, wenn das Objekt gelöscht wird, wird auch der Wert auf der Map gelöscht:

$map = new WeakMap;
$obj = new stdClass;
$map[$obj] = 42;
var_dump($map);
// object(WeakMap)#1 (1) {
//   [0]=>
//   array(2) {
//     ["key"]=>
//     object(stdClass)#2 (0) {
//     }
//     ["value"]=>
//     int(42)
//   }
// }
// The object is destroyed here, and the key is automatically removed from the weak map.
unset($obj);
var_dump($map);
// object(WeakMap)#1 (0) {
// }

Zwar ist dies noch nicht in den offiziellen Docs enthalten, aber es wurde eine neue Methode zu den DateTime– und DateTimeImmutable-Klassen namens createFromInterface() hinzugefügt. Diese verhält sich wie createFromMutable() oder createFromImmutable(), akzeptiert aber ein DateTimeInterface. Der entsprechende Commit ist auf GitHub zu finden.

International PHP Conference

How Much Framework?

by Arne Blankerts (thePHP.cc)

Building a Cloud-Friendly Application

by Larry Garfield (Platform.sh)

Crafting Maintainable Laravel Applications

by Jason McCreary (Pure Concepts, LLC)

JavaScript Days 2020

Architektur mit JavaScript

mit Golo Roden (the native web)


Daneben gibt es einige Verhaltensänderungen sowie Anpassungen, um das DOM-API mit den neuesten Standards kompatibel zu machen.

Neue Features für PHP 8.0

Entwickler: Welches dieser Features ist dein persönliches Highlight?

Da Silva: Der JIT ist hier bei weitem das bedeutendste. Auch wenn es keine verrückten Leistungsverbesserungen für in PHP geschriebene Webanwendungen bringen sollte, wird es die Sprache auf ein ganz neues Niveau bringen. Mit dem JIT ist PHP nicht mehr von C-Features abhängig und wird in der Lage sein, sprachspezifische Features zu entwickeln.  Es wird auch die Möglichkeit bieten, die Sprache für CPU-intensive Aufgaben zu nutzen, was bedeutet, dass PHP in naher Zukunft für Dinge in Betracht gezogen werden könnte, die sich die Menschen heutzutage nicht einmal vorstellen können. Dinge wie maschinelles Lernen, Spielentwicklung oder die Entwicklung von Benutzeroberflächen.

Entwickler: Sind in der kommenden Version weitere Features geplant?

Da Silva: Ich sehe zumindest im Moment keinen anderen großen Aspekt auf der Roadmap. Es gibt einige Verhaltensänderungen in der Phase der Pending-Vote-Phase, Dinge wie Fehlerbehandlung und Vergleichsoperatoren.

Schaut gerne auch auf meinem Blog vorbei, da werde ich euch über Neuigkeiten auf dem Laufenden halten.

Entwickler: Vielen Dank für das Interview!

Níckolas Da silva ist seit etwas sieben Jahren Backend Developer. Geboren und aufgewachsen ist er in São Paulo, Brasilien. Er lebt in Berlin und arbeitet zurzeit als Senior Fullstack Engineer bei ResearchGate. Sein tägliches Leben beinhaltet viel PHP, aber auch Java, React und tolle Leute! Müsste er seine Lieblingssprache nennen, wäre es PHP – sie hat eine erstaunliche Community!
Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -