PHP RFC: True Async

Проєкт TrueAsync просувається через офіційний процес RFC на wiki.php.net. На даний момент опубліковано два RFC, які описують базову модель конкурентності та структурну конкурентність.

RFC #1 — PHP True Async

Автор: Edmond [HT] Версія: 1.7 Цільова версія: PHP 8.6+ Under Discussion

Основний RFC, що визначає модель конкурентності для PHP. Описує корутини, функції spawn() / await() / suspend(), об’єкт Coroutine, інтерфейси Awaitable та Completable, механізм кооперативного скасування, інтеграцію з Fiber, обробку помилок та graceful shutdown.

Ключові принципи:

Читати RFC на wiki.php.net →

RFC #2 — Scope та структурна конкурентність

Автор: Edmond [HT] Версія: 1.0 Draft

Розширення базового RFC. Вводить клас Scope, що прив’язує час життя корутин до лексичної області видимості. Описує ієрархію scope’ів, поширення помилок, політику «зомбі»-корутин та критичні секції через protect().

Що вирішує:

Читати RFC на wiki.php.net →

Як пов’язані ці RFC

Перший RFC визначає низькорівневі примітиви — корутини, базові функції та C API для розширень. Другий RFC додає структурну конкурентність — механізми керування групами корутин, що роблять конкурентний код безпечним та передбачуваним.

Разом вони формують повну модель асинхронного програмування для PHP:

  RFC #1: True Async RFC #2: Scope
Рівень Примітиви Керування
Що дає spawn(), await(), Coroutine Scope, TaskGroup, protect()
Аналогії Go goroutines, Kotlin coroutines Kotlin CoroutineScope, Python TaskGroup
Мета Запуск конкурентного коду Безпечне керування життєвим циклом

Участь в обговоренні

RFC обговорюються в розсилці internals@lists.php.net та на GitHub Discussions.

Також приєднуйтесь до обговорення в Discord.