True Async



На днях был опубликован RFC, предоставляющий возможность писать асинхронный код на PHP.



Согласно этому предложению, можно будет писать код следующего вида:



Async\run(function() {



$fiber = Async\async(function() {

sleep(1);

return "Fiber completed!";

});



// Выполнение приостанавливается, пока fiber не завершится

$result = Async\await($fiber);



echo $result . "\n";



echo "Done!\n";

});


Это похоже на async/await в JavaScript и работает через механизм Event Loop.



На данный момент для написания асинхронного кода в PHP используют генераторы, Fiber (начиная с версии 8.1), а также решения вроде Swoole, AMPHP, ReactPHP.



RFC:

https://wiki.php.net/rfc/true_async



➡️ @PHPgx