#### 目前常用组件
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采集进程服务