swoolefy
這是一個基于swoole擴展實現的輕量級高性能的API和Web的MVC微服務框架,參考了TP,Yii2,Workerman,swoole_framework等框架的的設計思想。同時也結合了多年來的技術的積累的以及生產環境中的實踐經驗
實現的功能特性
1、輕量級的框架,實現路由與調度,MVC三層,當然也可以配置多層
2、支持composer和自定義注冊命名空間
3、支持多協議,目前支持http,websocket
3、利用swoole的原生異步進程封裝成應用服務,更有好的任務投放
4、實現超全局變量,IOC(控制反轉),靜態延遲綁定,組件服務常駐內存化,trait的多路復用
5、簡單易用的定時任務,以及table內存表,自定義錯誤捕捉
6、靈活多層的配置,配置參數即可實現底層已封裝的復雜功能
7、應用對象的深度復制,實現對象的常駐內存,每個請求只需要從內存中復制應用對象,不需要再重新創建,減少IO消耗,保持內存穩定
8、封裝View,Log,Mysql,Redis,Mongodb,Swiftmail郵件等常用組件,其他組件根據業務按照約定即可封裝成組件
9、支持udp,tcp,http多種方式接入graylog
10、基于inotify實現自動監測swoole服務的文件變動,實現自動重載,檢測,智能郵件通知的服務
11、封裝啟動停止控制的腳本,簡單命令即可管理整個框架,使用文檔手冊將在后期整理
配置環境
1、支持php7.0+
2、搭建lnmp環境,建議使用lnmp一健安裝包,https://lnmp.org, 建議安裝lnmp1.4
3、安裝php必要的擴展,框架需要的擴展包括swoole(1.9.17+), swoole_serialize (https://github.com/swoole/swo... inotify, pcntl, posix, zlib, mbstring,可以通過php-m查看是否安裝了這些擴展,如果通過lnmp1.4一健安裝包安裝的,已經默認安裝好這四個pcntl, posix, zlib, mbstring擴展的,只需要在安裝swoole和swoole_serialize, inotify即可,具體安裝過程參考官方文檔
下載框架和安裝
在某一個web目錄下
(1)git clone https://github.com/bingcool/s...
(2)composer install(需要安裝composer)
啟動
1、啟動文件自動監控程序,進入swoolefy/score/AutoReload
php start.php -d
監控程序自動監控php的文件變動,然后swoole的worker自動重啟,這個文件其實是通過調用代碼Shell文件夾的swoole_monitor.sh來監控9502端口(這個是swoole的http服務的默認端口)
2、啟動swoole的http服務,進入swoole/score/Http
啟動:php start.php start http
停止:php start.php stop http
默認端口是9502,當然可以在配置文件中更改,同時對應的swoolefy/score/AutoReload下的daemon.php中對應更改。注意文件權限問題
訪問test
在App/Controller中就可以編碼測試,基本和thinkphp的mvc那樣操作。
比如在App/Controller/TestController.php
那么直接在瀏覽器輸入http://ip:9502/Test/test, 對應的路由規則domain/controller/action
具體的可以參考App/Controller/的例子
如果需要使用mysql,redis,mongodb這些組件功能,請安裝mysql,redis,mongodb并在App/Config/config.php中配置,具體的配置可以參考配置文件。這個與Yii2的Component相似.
框架已在github開源:https://github.com/bingcool/s...,有需要的同學可以嘗試,也歡迎issue