【workbunny】協(xié)程基建

1.3.5
版本
2025-04-24
版本更新時間
559
安裝
73
star
Webman Coroutine Infrastructure Suite Compatible with Workerman.
計劃 & 說明
- 目前
workerman v5
/webman 2.1
官方均已支持協(xié)程,該插件會基于官方協(xié)程組件圍繞webman上層應(yīng)用功能進行開發(fā)workbunny/webman-coroutine
插件與官方協(xié)程插件workerman-php/coroutine
可互聯(lián)使用- 與官方協(xié)程組件
workerman-php/coroutine
區(qū)別如下:
workbunny/webman-coroutine
除了Fiber
、Swoole/Swow
的支持外還支持Ripple
事件驅(qū)動workbunny/webman-coroutine
著重在協(xié)程睡眠和協(xié)程喚起上做了優(yōu)化,并附帶了一些協(xié)程管理調(diào)試相關(guān)的工具workbunny/webman-coroutine
兼容workerman 4.x
/webman 1.x
以上的一些差異點會在后續(xù)與官方協(xié)程組件保持兼容,并會在合適的時機合并至官方協(xié)程組件
簡介
???? webman-coroutine 是一個支持 workerman / webman 開發(fā)框架生態(tài)下的協(xié)程基建支撐插件
起源
- workerman 4.x 及基于其作為運行容器的 webman 框架不支持協(xié)程
- workerman 5.x 及基于其作為運行容器的 webman 框架不具備完備的協(xié)程能力
- workerman / webman 沒有一個較為統(tǒng)一的協(xié)程使用方式,導(dǎo)致切換協(xié)程驅(qū)動的開發(fā)成本較高,試錯成本較高
- 自行實現(xiàn)協(xié)程版worker、server開發(fā)成本較高,試錯成本較高
目的
-
提供
workerman
/webman
多樣的基礎(chǔ)協(xié)程事件庫,兼容支持workerman 4.x
和workerman 5.x
的協(xié)程驅(qū)動 -
提供
workerman
/webman
統(tǒng)一的協(xié)程開發(fā)工具,兼容非協(xié)程環(huán)境- 協(xié)程通道:Utils/Channel
- 協(xié)程等待:Utils/WaitGroup
- 協(xié)程:Utils/Coroutine
- 協(xié)程化Worker:Utils/Worker
- 對象池:Utils/Pool
愿景
- 在
workerman
/webman
開發(fā)環(huán)境下,提供一套簡單的協(xié)程工具包,降低認知負荷。 - 在
workerman
/webman
開發(fā)環(huán)境下,嘗試實現(xiàn)一套兼容協(xié)程與非協(xié)程開發(fā)的方案,讓選擇和擺脫方案更簡單,避免更多的焦慮。 - 在
workerman
/webman
開發(fā)環(huán)境下,盡可能實現(xiàn)對官方組件的無侵入式協(xié)程化改造(雖然很難,但也想試試)
。 - 希望在代碼的實現(xiàn)上能夠給更多PHP開發(fā)帶來一些幫助,甚至靈感。
安裝
通過composer
安裝
composer require workbunny/webman-coroutine
目錄
|-- config # webman 配置文件
|-- plugin
|-- webman-coroutine
|-- app.php # 主配置信息
|-- process.php # 啟動進程
|-- Events # workerman-4.x 事件驅(qū)動文件
|-- Exceptions # 異常
|-- Handlers # 入口主驅(qū)動
|-- Utils # 工具包
|-- Channel # 通道 驅(qū)動
|-- Coroutine # 協(xié)程 驅(qū)動
|-- WaitGroup # wait group 驅(qū)動
|-- Worker # worker 驅(qū)動
|-- Pool # 對象池 驅(qū)動
|-- RegisterMethods.php # 驅(qū)動注冊助手
|-- Factory # 入口類
|-- CoroutineWebServer.php # webman 自定義http服務(wù)
|-- helpers.php # 入口助手
文檔
目錄 | 地址 |
---|---|
API | Fucntion-APIs |
教程 | PHP 協(xié)程入門 |
- | 安裝及配置 |
- | 助手函數(shù) |
- | workerman 環(huán)境 |
- | webman 框架 |
- | Utils 說明 |
- | 自定義拓展 |
- | 協(xié)程的觀測和管理 |
參與開發(fā)
規(guī)范
- 新特性提交請先提交feature-issue,再提交PR,避免重復(fù)開發(fā);
- Bug修復(fù)請先提交bug-repo-issue,再提交PR,避免重復(fù)開發(fā);
工具
- 代碼格式化:
composer cs-fix
- 靜態(tài)檢查:
composer php-stan
- 測試與覆蓋:
composer unit-test
,命令運行后會在項目創(chuàng)建的coverage
目錄下生成報告 - function-apis文檔生成:
- 使用
composer doc-install
或自行安裝phpDocumentor - 在項目根目錄使用
phpDocumentor
生成文檔
- 使用
?? 相關(guān)文章
- webman如何使用swow事件驅(qū)動和協(xié)程?
- PHP高性能純協(xié)程網(wǎng)絡(luò)通信引擎Swow
- workerman5.0 和 swoole5.0 實現(xiàn)一鍵協(xié)程
- webman如何使用swoole事件驅(qū)動和協(xié)程?
?? 致謝
??感恩 workerman 和 swow 開發(fā)團隊為 PHP 社區(qū)帶來的創(chuàng)新和卓越貢獻,讓我們共同期待 PHP 在實時應(yīng)用領(lǐng)域的更多突破?。。?/strong>