El desarrollador de PHP Edmond Dantes ha abierto el debate sobre una nueva RFC titulada «Concurrency Support in the PHP Engine» (wiki.php.net/rfc/async_scheduler_abi). La propuesta dota al motor Zend de una representación nativa de corrutinas y de un componente planificador (scheduler) intercambiable que puede implementar una extensión. No añade clases, funciones, constantes ni sintaxis nuevas en PHP; si no hay ningún planificador registrado, PHP se comporta exactamente igual que hoy.
Esta RFC no es la anterior RFC «True Async», sino un núcleo mínimo a nivel de motor extraído de ese trabajo. Define un contrato de activación, notificaciones que emite el motor, un mecanismo para que un planificador adopte fibers y almacenamiento propio por corrutina. Las API orientadas al usuario, como spawn(), await() o los canales, seguirían siendo responsabilidad de las extensiones; True Async sería solo uno de los posibles proveedores construidos sobre esta base.
Ya existe una implementación funcional en forma de pull request php/php-src#22561 en GitHub, también presentada por Dantes. Incluye una extensión planificadora de referencia integrada en el árbol de código, ext/test_scheduler, desactivada por defecto, que completa cada ranura del planificador mediante código de extensión ordinario; las suites de pruebas existentes de PHP se ejecutarían sin cambios, sin planificador, dentro del mismo binario. Una extensión puente aparte, fuera del repositorio, que implementa un planificador en PHP puro, sirve como prueba de que la interfaz propuesta es suficiente.
Para las bibliotecas asíncronas existentes, el diseño permite que un planificador adopte fibers ya creados por ReactPHP, Revolt o AMPHP, de forma individual y opcional por cada fiber. El nuevo almacenamiento por corrutina busca, a futuro, hacer que funciones como ob_start() sean seguras para corrutinas. Dantes subraya que la propuesta no introduce goroutines ni paralelismo real: la ejecución permanece confinada a un único hilo del sistema operativo.