### Q:swoolefy是什么?
A:swoolefy是一個基于swoole擴展實現的輕量級高性能的常駐內存型的API和Web應用服務框架。
swoolefy的設計思想汲取了Tp5,Yii2,workerman,swooole-framework,easyswoole等框架的優秀設計思想,并結合本人多年的技術積累以及實踐經驗,它一定不是最優秀的框架,但是這是一個適合學習swoole的框架,特別適合中小團隊。
### Q:我為什么要開發swoolefy
A:開發swoolefy并不是一頭熱地想重復造輪子,2016年是我第一次接觸swoole,當時swoole還是1.8.3版本,已經算是比較完善的異步通信網絡擴展了。基于當時公司需要處理大量錄播視頻,實現視頻剪切,合并,打點,自動摳封面,視頻切片等,第一次使用swoole和ffmpeg結合,作為守護進程任務式實現了。在后來電商的獨立的短信服務,郵件服務,搜索服務,推送服務,訂單服務,定時任務,統計,websocket等都使用swoole來實現獨立的服務。一次又一次的感受到了swoole的強大之處,很多以前php做不到的事,swoole基本都可以實現,作為phper,當感受它的強大之后,你會覺得很興奮,后來覺得有必要將swoole整合成一個更簡單的框架,畢竟swoole是一個網絡底層框架,實際使用起來還是有點困難的。在2017年8月份,我個人正式利用業余時間開始swoolefy的編碼工作,也算是個人的知識積累的過程。
### Q:為什么叫Swoolefy?
A:Swoolefy,這幾個字母組合起來,當你把目光從遠點看來,感覺就像一個飛翔的天使,展翅翱翔天空一樣,當然這是個人感受,所以就有了Swoolefy這個......
### Q:swoolefy最重要特性有哪幾方面
### A:只要體現在一下四個主要特性:
#### 輕量級:
swoolefy是一個完全基于php7實現的框架,大量使用了php的新特性,封裝必要的管理、功能類或者組件,實現多協議下的代碼高度復用。
#### 高性能:
一方面是基于swoole原生的高性能,另一方面基于框架本身設計,沒有過多冗余,過度封裝,在緩存,調度,ioc,單例等模式上優化,解決很多協程細節上的問題。
#### 協程級:
主要是swoole的原生支持,框架通過注冊協程單例模式,本身解決了協程共享變量安全問題。
#### 開放性:
swoolefy并沒有過度封裝,很多都是面向對外的接口方式,提高適配性,開發者可以自由發揮創建,不限于框架本身。
### Q:如何加入swoolefy?
A:巨人swoole在4.3.0版本后,整體特性趨于穩定。swoolefy是站在巨人的肩膀的實現的,目前達到預期的穩定階段。接下來階段,swoolefy會邀請,或者接受一些優秀的開發者加入,對于有意愿的開發者,可以先提交PR。
### Q:swoolefy文檔更新情況?
A:swoolefy的文檔目前是整體文檔,基本趨于最新的,但是很多細節功能還沒有寫,建議開發者需要結合代碼可以來理解很多的使用方法,這也是了解,學習框架的一種好方法。后續會付出更多精力來完善文檔
**swoolefy全面支持swoole4.x的原生協程,推薦使用swoole4.2.13+版本,推薦4.3.+**
* * * * *
#### swoolefy的核心特征
- [x] 路由與調度,MVC三層,多級配置
- [x] 支持composer的PSR-4規范
- [x] 支持自定義注冊命名空間,快速部署項目,簡單易用
- [x] 支持httpServer
- [x] 支持websocketServer,udpServer
- [x] 支持基于tcp實現的rpc服務,開放式的系統接口,可自定義協議數據格式,并提供rpc-client組件
- [x] 支持容器,組件IOC
- [x] 支持協程單例注冊
- [x] 支持mysql協程組件,redis協程組件,mongodb組件,提供基于tp改造的swoolefy-orm協程mysql組件
- [x] 支持mysql的協程連接池,redis協程池
- [x] 異步務管理TaskManager,定時器管理TickManager,內存表管理TableManager,自定義進程管理ProcessManager,進程池管理PoolsManger
- [x] 支持底層異常錯誤的所有日志捕捉
- [x] 支持自定義進程的redis,rabitmq,kafka的訂閱發布,消息隊列等
- [x] 支持crontab
- [x] 支持定時的系統信息采集,并以訂閱發布,udp等方式收集至存貯端
- [x] 命令行形式高度封裝啟動|停止控制的腳本,簡單命令即可管理整個框架
- [ ] 分布式服務注冊(zk,etcd,未來主要實現)
#### GitHub
https://github.com/bingcool/swoolefy 歡迎start以及使用
#### 技術交流
QQ群:735672669,歡迎加入!
個人博客:https://blog.csdn.net/u012979009
- 歡迎使用swoolefy
- 環境說明
- 開發部署
- 安裝
- 創建應用
- 啟動|停止服務
- nginx代理
- 創建Controller
- 應用結構
- App應用對象
- Event請求處理
- 超全局管理
- 熱更新
- inotify實現worker進程熱重啟
- http服務
- 應用層配置
- 協議層配置
- 路由規則
- 控制器
- 數據模型
- websocket服務
- 應用層配置
- 協議層配置
- 數據封裝格式
- 控制器
- 數據模型
- 二進制數據處理
- rpc服務
- 應用層配置
- 協議程配置
- 數據包協議格式
- 服務控制器
- 服務數據模型
- udp服務
- 應用層配置
- 協議層配置
- 數據包封裝格式
- 控制器
- 存在問題
- 常用組件
- log
- view
- session
- cache(redis)
- db(mysql)
- mongodb
- 其他服務管理
- 自定義進程管理
- 異步任務管理
- 內存表管理
- 定時器管理
- 異常捕捉處理
- 進程池管理
- systerm采集進程服務