PHP RFC: True Async

Das TrueAsync-Projekt wird über den offiziellen RFC-Prozess auf wiki.php.net vorangetrieben. Bisher wurden zwei RFCs veröffentlicht, die das grundlegende Nebenläufigkeitsmodell und die strukturierte Nebenläufigkeit beschreiben.

RFC #1 — PHP True Async

Autor: Edmond [HT] Version: 1.7 Zielversion: PHP 8.6+ Under Discussion

Der Haupt-RFC, der das Nebenläufigkeitsmodell für PHP definiert. Beschreibt Koroutinen, Funktionen spawn() / await() / suspend(), das Coroutine-Objekt, die Schnittstellen Awaitable und Completable, den kooperativen Abbruchmechanismus, die Fiber-Integration, Fehlerbehandlung und Graceful Shutdown.

Kernprinzipien:

RFC auf wiki.php.net lesen →

RFC #2 — Scope und strukturierte Nebenläufigkeit

Autor: Edmond [HT] Version: 1.0 Draft

Erweiterung des Basis-RFC. Führt die Klasse Scope ein, die die Lebensdauer von Koroutinen an den lexikalischen Gültigkeitsbereich bindet. Beschreibt die Scope-Hierarchie, Fehlerweiterleitung, die „Zombie”-Koroutinen-Richtlinie und kritische Abschnitte über protect().

Was es löst:

RFC auf wiki.php.net lesen →

Wie diese RFCs zusammenhängen

Der erste RFC definiert niedrigstufige Primitive — Koroutinen, Basisfunktionen und C-API für Erweiterungen. Der zweite RFC fügt strukturierte Nebenläufigkeit hinzu — Mechanismen zur Verwaltung von Koroutinen-Gruppen, die nebenläufigen Code sicher und vorhersagbar machen.

Zusammen bilden sie ein vollständiges asynchrones Programmiermodell für PHP:

  RFC #1: True Async RFC #2: Scope
Ebene Primitive Verwaltung
Bietet spawn(), await(), Coroutine Scope, TaskGroup, protect()
Analogien Go Goroutines, Kotlin Coroutines Kotlin CoroutineScope, Python TaskGroup
Ziel Ausführung nebenläufigen Codes Sichere Lebenszyklus-Verwaltung

An der Diskussion teilnehmen

RFCs werden auf der Mailingliste internals@lists.php.net und auf GitHub Discussions diskutiert.

Treten Sie auch der Diskussion auf Discord bei.