Mitdiskutieren!

Neue Features in PHP 8.0: Welche dürfen es sein?
Keine Kommentare

Nachdem die Features für die nächste PHP-Version 7.3 feststehen, beginnen die Diskussionen um PHP 8.0. Es ist an der Zeit, mitzubestimmen! Welche Neuerungen soll die nächste PHP-Version enthalten? Auf php-vote.com werden Ideen und Vorschläge gemacht, über die Beiträge anderer abgestimmt und diese kommentiert.

Sei es auf Blogs, in Mailinglisten, auf Social-Media-Kanälen  – die Community diskutiert bereits fleißig darüber, wie es mit der Programmiersprache PHP weiter gehen soll. Die Website php-vote.com wurde bereits mit einigen Vorschlägen für die nächste PHP-Major-Version (PHP.next) bestückt. Die Community kann die Einträge dann mithilfe von Daumen-Votes befürworten oder ablehnen.

Bisher die meisten Daumen nach oben erhielt der Wunsch, Polymorphie für Methoden einzuführen. Damit ließe sich dieselbe Methode mit zwei unterschiedlichen Signaturen nutzen:

class Foo
{
    public function bar()
    {
        //something
    }
    public function bar($param)
    {
        //other thing
    }

}

Eine vollständige Unterstützung der Unicode-Zeichen utf8 in PHP steht auch zur Debatte. Ebenso gibt es den Vorschlag für eine „Head and tail sugar Syntax“ in PHP, ähnlich wie in Erlang:

function sum([$head|$tail]){
	if(empty($tail)){
	    return $head;
	}
	return $head + sum($tail);
}

echo sum( [1, 2, 3, 4] ); // 10

Kombiniert mit Pattern Matching wären folgende Konstrukte möglich:

// When we receive an empty list
function sum([]){
	return 0;
}
// Normal case
function sum([$head|$tail]){
	return $head + sum($tail);
}

echo sum( [1, 2, 3, 4] ); // 10

Die Vorschläge, eine Unterstützung für named arguments und scalar Type Hints zu implementieren, ernten ebenfalls bereits Zustimmung. Weitere Ideen finden sich unter https://php-vote.com/.

Blogs & Twitter

PHPVote ist nicht die einzige Community-Seite, auf der über die Zukunft von PHP debattiert wird. So gab es etwa auf Twitter jüngst eine rege Diskussion zum Thema. Die über 200 Antworten auf diesen Tweet zeugen vom regen Interesse am Thema:

Hier auf Entwickler plädiert Andrew Carter im Beitrag „Make PHP Great Again“ für die Einführung von Skalaren Objekten, mit denen die PHP-Core-Funktionen vereinheitlicht werden könnten. Unterstützung erhält Carter vom Blogger Matt Sparks:

PHP 8 is a great opportunity to cleanup these inconsistencies. Introducing scalar objects would provide a consistent API that would be more fluent and much more enjoyable to work with.

Statt zu schreiben:

PHP

$hello = str_replace('Matt', 'Bob', 'Hello Matt!');

var_dump($hello); // Hello Bob!
$hello = str_replace('Matt', 'Bob', 'Hello Matt!');
var_dump($hello); // Hello Bob!

wäre dann folgendes möglich:


$hello = 'Hello Matt!';
var_dump($hello->replace('Matt', 'Bob')); // Hello Bob!
$hello = 'Hello Matt!';
 
var_dump($hello->replace('Matt', 'Bob')); // Hello Bob!

PHP-Experte Arne Blankerts sagt Entwickler im Interview „Quo vadis PHP“:

Wenn ich mir etwas für PHP 8 wünschen dürfte, dann eher, dass die Sprache als solches sich weiterentwickelt. Und zwar um Dinge wie Typed Properties und Immutable Classes and Properties, die sich beide gerade im RFC-Stadium befinden.

Des Weiteren bin ich gespannt, wie es mit PDO weitergeht, denn hier lauern aktuell gleich zwei Probleme: Zum einen gibt es nach meinem Wissen keine aktive Weiterentwicklung, zum anderen gibt es noch immer ungeklärte Lizenzfragen bezüglich der jeweiligen Bibliotheken der Datenbankclients, sofern man diese auf neuere Versionen aktualisieren oder mit ausliefern wollen würde.

MEHR ZUM THEMA

Lesen Sie das gesamte Interview zum aktuellen Stand bei PHP mit Arne Blankerts: Quo vadis PHP?

PHP 8.0 – die PHP Internals

Von offizieller Seite kam der Startschuss für die Diskussionen um PHP 8.0 von Zend CTO Zeev Suraski. In einer Nachricht an die PHP-Internals-Mailingliste schlug er vor, nach der Veröffentlichung von PHP 7.3 Ende 2018 die Kräfte auf das nächste Major-Release 8.0 zu richten. Vier große Themenbereiche sollen dabei angegangen werden:

1. Just-in-Time Compiler in PHP 8.0

Die Arbeiten an einem neuen JIT-Compiler laufen schon eine ganze Weile. Zeev schlägt vor, JIT als eines der Hauptfeatures in PHP 8.0 aufzunehmen. Einerseits würden dadurch für PHP neue Anwendungsfälle erschlossen, die sich nicht nur auf das Web beziehen. Andererseits wäre neue Funktionalität in PHP selbst möglich, beispielsweise die Implementierung von unserialize() direkt in PHP statt in C.

2. Support für ein Microservices-fokussiertes Ausführungsmodell

Ziel für PHP 8.0 soll es sein, Erweiterungsmechanismen zu integrieren, die genutzt werden können, um Extensions bzw. Funktionen mit asynchronen I/O-Operationen auszustatten. Nach den ersten Untersuchungen in diese Richtung wird wahrscheinlich libuv dafür zum Einsatz kommen. Außerdem sollen Teile des PHP Streams-System neu- oder umgeschrieben werden.

3. Foreign Function Interface Support in PHP 8.0

In PHP 8.0 soll es einfacher werden, PHP mit C/C++-Bibliotheken zu verbinden, ohne dass dafür eigene Extensions geschrieben werden müssen. Zeev sieht dies als strategisch wichtiges Feature an, da dadurch der Weg bereitet würde, PHP zusammen mit brandaktuellen Technologien etwa aus dem Bereich AI und Machine Learning zu nutzen.

4. Unterstützung für Preloading

Preloading wird insbesondere im Zusammenspiel mit dem neuen JIT Compiler interessant, da dadurch das Schreiben von PHP-basierten Extensions effizienter wird.

Mitdiskutieren!

Die Zeit ist also reif für Diskussionen über die Zukunft von PHP. Möglichkeiten dafür gibt es viele – und ein bisschen Zeit ist ja auch noch bis dahin. PHP 8.0 soll nicht vor 2020 erscheinen, nach einem möglichen Zwischen-Release 7.4, in dem nur Deprecations und allenfalls kleinere Features umgesetzt würden.

Arne Blankerts kommentiert:

Es gibt viele spannende Experimente, Erweiterungen und RFCs, die es in eine mögliche Version 8 von PHP schaffen könnten. Auch wenn es natürlich Spaß machen kann, sich zu überlegen, welche davon eine ernsthafte Chance haben, so ist eine Version 8.0 noch in sehr weiter Ferne. Wirklich sicher erwarten kann man daher wohl nur, dass PHP 8 erneut schneller sein wird und eben alle in 7.x als deprecated markierten Dinge verschwunden sein werden.

International PHP Conference

Migrating to PHP 7

by Stefan Priebsch (thePHP.cc)

A practical introduction to Kubernetes

by Robert Lemke (Flownative GmbH)

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 -