【workbunny】協(xié)程基建

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