主题:应用 Swoole 减速你的 CMS 零碎,并实现热更新
对于 Swoole 的简介不再在此赘述,各位能够自行查看官网的文档进行具体的理解。
本文以 MyCms 为例,简要阐明 Swoole 联合传统的 CMS 零碎进行应用,并实现热更新。
CMS 零碎:MyCms
(目前 v3.3+ 以上版本从新编写了对 Swoole 的反对,移除了包 swooletw/laravel-swoole。应用新版本的用户间接装置后批改 Nginx 配置即可)
集成 Swoole 问题:
1、系统配置更新后无奈实时读取
2、URL 别名生成后拜访 404
3、插件装置呈现问题
4、批改 PHP 文件后不失效
以上问题必须手动重启 swoole 能力失效
性能解决实现:
1、系统配置缓存更新后自行重载热更新
2、URL 路由别名缓存生成后自行重载热更新
3、插件装置 / 卸载后自行重载热更新
4、PHP 文件批改后,能够通过后盾革除缓存进行热更新
Swoole 拓展包
见 MyCmsExpand / Swoole 文件夹及根目录 swoole.php
次要文件阐明:
1、swoole.phpswoole 服务治理入口文件
2、Expand / Swoole / MySwoole.php 服务治理外围文件
3、Expand / Swoole / config.php 参数配置文件
4、Expand / Swoole / reset 须要重置的服务 (session)
Swoole 热更新外围
确认 onWorkerStart 及之前的操作没有加载须要热更新的文件,如果加载了就无奈进行热更新
示例包代码
onWorkerStart 中仅加载 Laravel 框架外围性能,onRequest 才解决相干逻辑操作
注:该示例包目前仅反对 Laravel 框架应用,如需反对其余框架,请自行批改兼容