#### 目前常用組件
swoolefy封裝了一些常用組件,可以說是基于簡單的IOC,和DI實現的,具體參考
[https://github.com/bingcool/swoolefy/blob/master/score/Core/ComponentTrait.php](https://github.com/bingcool/swoolefy/blob/master/score/Core/ComponentTrait.php)
* 組件控制位
創建組件是設定的一定的約定規范的。
2 、'is_delay' =>true,//延遲創建實例,請求時候再創建
3、 'func' => 'setConfig',// 組件創建完成后,需要執行該組件的實例函數,實現一些配置初始化,也可以設置成閉包回調函數,那么該函數將綁定到這個實例化的類中,就像這個函數是屬于類的。
例如:
~~~
// 加載完成后的回調初始化配置函數
'func' => function() {
$this->setConfig();
},
~~~
這三個控制位根據實際情況來設置,例如redis組件
~~~
'redis' =>[
'is_destroy' => true,//每次請求后是否銷毀對象
'is_delay' => true,//延遲創建實例,請求時候再創建
'class' => 'Swoolefy\Core\Cache\Redis',
'constructor'=> [
[
'scheme' => 'tcp',
'host' => '192.168.99.102',
'port' => 6379,
'password' => '123456'
],
]
],
~~~
這也就是說每次worker啟動的時候,redis組件并沒有創建等到有需要連接redis的時候,他才會創建redis實例,等到請求結束了,再次銷毀這個redis實例,如此重復循環。
* 如何獲取組件實例
在應用中可以通過Application::getApp()->組件名,形式獲取
例如
~~~
$redis = Application::getApp()->redis;
$view = Application::getApp()->view;
~~~
- 歡迎使用swoolefy
- 環境說明
- 開發部署
- 安裝
- 創建應用
- 啟動|停止服務
- nginx代理
- 創建Controller
- 應用結構
- App應用對象
- Event請求處理
- 超全局管理
- 熱更新
- inotify實現worker進程熱重啟
- http服務
- 應用層配置
- 協議層配置
- 路由規則
- 控制器
- 數據模型
- websocket服務
- 應用層配置
- 協議層配置
- 數據封裝格式
- 控制器
- 數據模型
- 二進制數據處理
- rpc服務
- 應用層配置
- 協議程配置
- 數據包協議格式
- 服務控制器
- 服務數據模型
- udp服務
- 應用層配置
- 協議層配置
- 數據包封裝格式
- 控制器
- 存在問題
- 常用組件
- log
- view
- session
- cache(redis)
- db(mysql)
- mongodb
- 其他服務管理
- 自定義進程管理
- 異步任務管理
- 內存表管理
- 定時器管理
- 異常捕捉處理
- 進程池管理
- systerm采集進程服務