Amphp Amphp/Amp 是一个轻量级、高效的PHP异步库,为开发人员提供了一种处理I/O密集型任务和网络操作的新方式。 AMPHP是一个事件驱动的PHP库集合,设计时考虑了纤程和并发性。amphp/amp专门提供了future和cancellation作为异步编程的基本原语。 AMPHP提供的库避免了I/O阻塞。 安装 此包可以作为Composer依赖项安装。 例如以下 amphp/byte-stream提供流抽象 amphp/socket为UDP和TCP(包括TLS)提供套 amphp/parallel提供并行处理以利用多个CPU内核并卸载阻塞操作 amphp /http-client提供HTTP/1.1和HTTP/2客户端 amphp/http-server提供HTTP/1.1和HTTP/2应用服务器 amphp/mysql和amphp/postgres用于非阻塞数据库访问
介绍 AMPHP 是一组事件驱动的 PHP 库,在设计时考虑了纤维和并发性。 AMPHP/Socket 是一个用于建立和加密非阻塞套接字的库。它为 Client 端和服务器提供套接字抽象。 安装 composer require amphp/socket 连接到服务器 // You can customize connect() options using ConnectContext pending connect() operation $deferredCancellation = new Amp\DeferredCancellation(); $socket = connect('amphp.org connectContext, $deferredCancellation->getCancellation()); 处理连接 Socket实现了ReadableStream和WritableStream,因此amphp path} HTTP/1.1\r\nHost: $host\r\nConnection: close\r\n\r\n"); ByteStream\pipe($socket, $stdout); 服务器 amphp
概述 AMPHP是一个事件驱动的PHP库集合,设计时考虑了纤程和并发性。amphp/mysql是一个异步MySQL客户端。该库通过在可用连接的可伸缩池中透明地分发查询来实现并发查询。 带有提交和回滚事件钩子的嵌套事务 无缓冲结果以减少大型结果集的内存使用 完整的MySQL协议支持,包括所有可用的异步命令 安装 此包可以作为Composer依赖项安装 composer require amphp
目前,诸如Wokerman、Swoole、AMPHP、ReactPHP等可投入生产环境的解决方案已相继问世。 尽管如此,PHP在编写并发代码方面仍缺乏一套全面的实现机制。 以Swoole为例,为了实现少量功能的修改,它不得不复制数千行代码;而AMPHP开发人员则需要在用户空间中,针对MySQL、PostgreSQL、Redis等系统,从零开始构建驱动程序。 如果存在现有代码或常见风格,如 AMPHP 接口、Go 语言的协程、Swoole API 等,最好采用广大开发者最熟悉的方式。 目标是在灵活性和简单性之间找到平衡。
因此,我们不仅可以使用传统的服务器运行应用程序,还可以使用Swoole,AMPHP和ReactPHP等库。展望未来,最后两人被排除在竞争之外。 负载测试工具 K6用于运行负载测试。 不幸的是,我没有找到与Symfony 7兼容的最新版本的ReactPHP和AMPHP运行时。PHPPM GitHub和Dockerhub看起来都被抛弃了。
the Incoming W... inpsyde/wonolog Monolog-based logging package for WordPress. amphp
the Incoming W...inpsyde/wonolog Monolog-based logging package for WordPress.amphp
Async组件构建在RevoltPHP之上,这使得它与Amphp和其他使用相同事件循环的库兼容。
你可以到 amphp/amp 版本库查看实现细节。在 Amp 中的 Coroutine 本身就是一个 Promise。如果这个协程抛出未经捕获的异常,这个协程就执行失败了。
ReactPHP和Amp剩下的两个重要选择是react/promise和amphp/amp。