On Sun, Oct 5, 2025 at 7:51 AM Edmond Dantes <[email protected]> wrote:
> Good day, everyone. I hope you're doing well. > > I’m happy to present the fourth version of the RFC. It wasn’t just me > who worked on it — members of the PHP community contributed as well. > Many thanks to everyone for your input! > > https://wiki.php.net/rfc/true_async > > **What has changed in this version?** > > The RFC has been significantly simplified: > > 1. Components (such as TaskGroup) that can be discussed in separate > RFCs have been removed from the current one. > 2. Coroutines can now be created anywhere — even inside shutdown_function. > 3. Added Memory Management and Garbage Collection section > > Although work on the previous API RFC was interrupted and we weren’t > able to include it in PHP 8.5, it still provided valuable feedback on > the Async API code. > > During this time, I managed to refactor and optimize the TrueAsync > code, which showed promising performance results in I/O scenarios. > > A test integration between **NGINX UNIT** and the **TrueAsync API** > was implemented to evaluate the possibility of using PHP as an > asynchronous backend for a web server: > > https://github.com/EdmondDantes/nginx-unit/tree/true-async/src/true-async-php > > During this time, the project has come very close to beta status. > > Once again, I want to thank everyone who supported me during difficult > times, offered advice, and helped develop this project. > > Given the maturity of both the code and the RFC, this time I hope to > proceed with a vote. > > Wishing you all a great day, and thank you for your feedback! > Hi, I am so looking forward to this capability! Just a quick question - other methods that tried to provide async/parallel type functionality previously were only available via the CLI. I can see a big opportunity for people running websites with Apache + PHP-FPM where on each page request you do stuff like: Call API 1 (e.g. external auth component) Call API 2 (e.g. product catalogue) Call API 3 (e.g. setup payment processor) Am hoping that you could put these three calls within a Scope and therefore have all three calls run at the same time, and only have to wait as long as the slowest API, rather than the combination of all 3 response times. I didn't see anything in the RFC about this, so just wanted to check. Thanks, Adam
