workbunny / webman-coroutine
Webman Coroutine Infrastructure Suite Compatible with Workerman.
Installs: 580
Dependents: 0
Suggesters: 0
Security: 0
Stars: 73
Watchers: 0
Forks: 12
Open Issues: 0
pkg:composer/workbunny/webman-coroutine
Requires
- php: ^8.0
- workerman/workerman: ^4.0 | ^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.6
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^9.6
- swoole/ide-helper: ^5.1 | ^6.0
- swow/swow: ^1.5
- symfony/var-dumper: ^6.0 | ^7.0
- webman/console: ^1.0 | ^2.0
- workerman/webman-framework: ^1.0 | ^2.0
Suggests
- ext-swoole: For supporting Swoole handler.
- cloudtay/ripple-driver: For supporting Ripple handler.
- revolt/event-loop: For supporting Revolt/PHP-fiber handler.
- swow/swow: For supporting Swow handler.
This package is auto-updated.
Last update: 2025-10-24 15:20:25 UTC
README
中文 | English
workbunny/webman-coroutine
🐇 Webman Coroutine Infrastructure Suite Compatible with Workerman. 🐇
Webman Coroutine Infrastructure Suite Compatible with Workerman.
简介
🚀🐇 webman-coroutine 是一个支持 workerman / webman 开发框架生态下的协程基建支撑插件
起源
- workerman 4.x 及基于其作为运行容器的 webman 框架不支持协程
- workerman 5.x 及基于其作为运行容器的 webman 框架不具备完备的协程能力
- workerman / webman 没有一个较为统一的协程使用方式,导致切换协程驱动的开发成本较高,试错成本较高
- 自行实现协程版worker、server开发成本较高,试错成本较高
目的
- 
提供 workerman/webman多样的基础协程事件库,兼容支持workerman 4.x和workerman 5.x的协程驱动
- 
提供 workerman/webman统一的协程开发工具,兼容非协程环境- 协程通道:Utils/Channel
- 协程等待:Utils/WaitGroup
- 协程:Utils/Coroutine
- 协程化Worker:Utils/Worker
- 对象池:Utils/Pool
 
愿景
- 在 workerman/webman开发环境下,提供一套简单的协程工具包,降低认知负荷。
- 在 workerman/webman开发环境下,尝试实现一套兼容协程与非协程开发的方案,让选择和摆脱方案更简单,避免更多的焦虑。
- 在 workerman/webman开发环境下,尽可能实现对官方组件的无侵入式协程化改造(虽然很难,但也想试试)。
- 希望在代码的实现上能够给更多PHP开发带来一些帮助,甚至灵感。
安装
通过composer安装
composer require workbunny/webman-coroutine
目录
|-- config                       # webman 配置文件
    |-- plugin
        |-- webman-coroutine
            |-- app.php          # 主配置信息
            |-- process.php      # 启动进程
|-- Events                       # workerman-4.x 事件驱动文件
|-- Exceptions                   # 异常
|-- Handlers                     # 入口主驱动
|-- Utils                        # 工具包
    |-- Channel                  # 通道 驱动
    |-- Coroutine                # 协程 驱动
    |-- WaitGroup                # wait group 驱动
    |-- Worker                   # worker 驱动
    |-- Pool                     # 对象池 驱动
    |-- RegisterMethods.php      # 驱动注册助手
|-- Factory                      # 入口类
|-- CoroutineWebServer.php       # webman 自定义http服务
|-- helpers.php                  # 入口助手          
文档
| 目录 | 地址 | 
|---|---|
| API | Fucntion-APIs | 
| 教程 | PHP 协程入门 | 
| - | 安装及配置 | 
| - | 助手函数 | 
| - | workerman环境 | 
| - | webman框架 | 
| - | Utils说明 | 
| - | 自定义拓展 | 
| - | 协程的观测和管理 | 
参与开发
规范
- 新特性提交请先提交feature-issue,再提交PR,避免重复开发;
- Bug修复请先提交bug-repo-issue,再提交PR,避免重复开发;
工具
- 代码格式化:composer cs-fix
- 静态检查:composer php-stan
- 测试与覆盖:composer unit-test,命令运行后会在项目创建的coverage目录下生成报告
- function-apis文档生成:
- 使用composer doc-install或自行安装phpDocumentor
- 在项目根目录使用phpDocumentor生成文档
 
- 使用
♨️ 相关文章
💕 致谢
💕感恩 workerman 和 swow 开发团队为 PHP 社区带来的创新和卓越贡献,让我们共同期待 PHP 在实时应用领域的更多突破!!!