/Workerman-Amp

Amp event-loop for Workerman

Primary LanguagePHPMIT LicenseMIT

Workerman-Amp

概述

Amp是一个事件驱动的PHP框架,与ReactPHP类似。

本项目用于将Amp的event-loop应用于Workerman,从而可以在Workerman中使用基于Amp的高性能组件,例如异步MySQL,异步Redis,异步HTTP客户端等。

使用说明

  1. src目录下的Amp.php复制到Workerman\Events下。

  2. 将目录Amp及其包含的所有文件复制到项目目录中可以被自动加载的位置下(PSR-4规范)。

  3. Amp设置为Workerman所使用的event-loop。如下:

Worker::$eventLoopClass = '\\Workerman\\Events\\Amp';

注意

  1. 本项目中使用的Amp是笔者略加修改的版本。由于Amp中的回调函数的首个参数是$watcher_id而不是$fd,所以不可以直接将Workerman中的事件回调作为Watcher。因此笔者修改了部分Watcher回调的传参顺序,使其与Workerman兼容。这样做的后果是不能保证其他Amp组件的可用性。在使用这些组件前需要检查其源码并根据情况作出相应修改。

  2. 笔者还移除了Amp\PromiseReact\Promise\PromiseInterface的支持。如果有需要,开发者可以自行添加回来。以上所有对Amp源码的修改,可以与官方仓库的master分支作对比。

  3. 笔者仅对本项目进行过少量测试,不能保证其稳定性。请避免将其应用于生产环境。