多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#### 目前常用组件 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; ~~~