PHP真正的异步即将到来?
介绍
多年来,PHP一直试图在长期运行的应用程序开发中占据一席之地,而并发代码执行在该领域尤为有用。已经出现了Swoole、AMPHP、ReactPHP等可用于生产的解决方案。
然而,PHP仍然没有提供编写并发代码的全面实现。PHP 扩展即使能够实现,也无法支持非阻塞执行。Swoole被迫复制数千行代码以进行少量修改,而AMPHP开发人员必须在用户空间从头开始为、、和其他系统 构建驱动程序。MySQL``PostgreSQL``Redis
此RFC 的目标是建立用 PHP 编写并发代码的标准,以及允许使用 C、Rust、C++ 和其他语言在低级别扩展 PHP 的C API接口。这将使扩展能够支持非阻塞 I/O,而无需覆盖 PHP 函数或重复代码。
目标
True Async 项目追求以下目标和价值:
从 PHP 开发人员的角度来看,此实现的主要价值在于他们不需要更改现有代码(或者如果需要更改,则更改应该是最少的)即可实现并发。
最初编写并计划在 Fiber 之外运行的代码必须与 Fiber 内部完全相同地运行,无需修改。
PHP 开发人员不必考虑 Fibers 如何切换,也不需要管理它们的切换 — — 除非在特殊情况下他们有意识地选择干预这种逻辑。
如果有现有的代码或熟悉的风格,例如 AMPHP 接口、Go 协程、Swoole API等,最好使用广泛开发人员最熟悉的。
目标是在灵活性和简单性之间找到平衡。一方面,实现应该允许利用现有解决方案而无需外部库。另一方面,它应该避免不必要的复杂性。此实现中的许多设计选择都是出于希望让开发人员摆脱对与“外部库”兼容性的担忧,转而采用标准化方法。
True Async旨在通过提供 OOP 接口来抽象事件循环管理,使开发人员能够专注于对象生命周期,而不是资源管理或实现细节。内存管理和对象(例如
Resume
、Notifier
和)的生命周期Callback
是隐藏复杂性的关键工具,确保开发人员无需担心手动释放资源。
RFC
#Github
github.com/EdmondDantes/php-src/tr...
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: