PHP RFC : True Async

Le projet TrueAsync progresse à travers le processus officiel de RFC sur wiki.php.net. Deux RFC ont été publiés, décrivant le modèle de concurrence de base et la concurrence structurée.

RFC #1 — PHP True Async

Auteur : Edmond [HT] Version : 1.7 Version cible : PHP 8.6+ Under Discussion

Le RFC principal définissant le modèle de concurrence pour PHP. Décrit les coroutines, les fonctions spawn() / await() / suspend(), l’objet Coroutine, les interfaces Awaitable et Completable, le mécanisme d’annulation coopérative, l’intégration avec Fiber, la gestion des erreurs et le graceful shutdown.

Principes clés :

Lire le RFC sur wiki.php.net →

RFC #2 — Scope et concurrence structurée

Auteur : Edmond [HT] Version : 1.0 Draft

Extension du RFC de base. Introduit la classe Scope, liant la durée de vie des coroutines à la portée lexicale. Décrit la hiérarchie des scopes, la propagation des erreurs, la politique des coroutines « zombie » et les sections critiques via protect().

Ce qu’il résout :

Lire le RFC sur wiki.php.net →

Comment ces RFC sont liés

Le premier RFC définit les primitives de bas niveau — coroutines, fonctions de base et API C pour les extensions. Le second RFC ajoute la concurrence structurée — des mécanismes de gestion de groupes de coroutines qui rendent le code concurrent sûr et prévisible.

Ensemble, ils forment un modèle complet de programmation asynchrone pour PHP :

  RFC #1 : True Async RFC #2 : Scope
Niveau Primitives Gestion
Fournit spawn(), await(), Coroutine Scope, TaskGroup, protect()
Analogies Go goroutines, Kotlin coroutines Kotlin CoroutineScope, Python TaskGroup
Objectif Exécuter du code concurrent Gestion sûre du cycle de vie

Participer à la discussion

Les RFC sont discutés sur la liste de diffusion internals@lists.php.net et sur GitHub Discussions.

Rejoignez également la conversation sur Discord.