Amp是一个事件驱动的PHP框架,与ReactPHP
类似。
本项目用于将Amp
的event-loop应用于Workerman
,从而可以在Workerman
中使用基于Amp
的高性能组件,例如异步MySQL
,异步Redis
,异步HTTP客户端等。
-
将
src
目录下的Amp.php
复制到Workerman\Events
下。 -
将目录
Amp
及其包含的所有文件复制到项目目录中可以被自动加载的位置下(PSR-4规范)。 -
将
Amp
设置为Workerman
所使用的event-loop。如下:
Worker::$eventLoopClass = '\\Workerman\\Events\\Amp';
-
本项目中使用的
Amp
是笔者略加修改的版本。由于Amp
中的回调函数的首个参数是$watcher_id
而不是$fd
,所以不可以直接将Workerman
中的事件回调作为Watcher。因此笔者修改了部分Watcher回调的传参顺序,使其与Workerman
兼容。这样做的后果是不能保证其他Amp
组件的可用性。在使用这些组件前需要检查其源码并根据情况作出相应修改。 -
笔者还移除了
Amp\Promise
对React\Promise\PromiseInterface
的支持。如果有需要,开发者可以自行添加回来。以上所有对Amp源码的修改,可以与官方仓库的master分支作对比。 -
笔者仅对本项目进行过少量测试,不能保证其稳定性。请避免将其应用于生产环境。