使用|使用 Swoole 加速你的 CMS 系统,并实现热更新 (基于 Laravel 框架)
文章图片
主题:使用 Swoole 加速你的 CMS 系统,并实现热更新
关于 Swoole 的简介不再在此赘述,各位可以自行查看官网的文档进行详细的了解。
本文以 MyCms 为例,简要说明 Swoole 结合传统的 CMS 系统进行使用,并实现热更新。
CMS系统:MyCms
(目前v3.3+以上版本重新编写了对 Swoole 的支持,移除了包swooletw/laravel-swoole。 使用新版本的用户直接安装后修改Nginx配置即可)
集成 Swoole 问题:
【使用|使用 Swoole 加速你的 CMS 系统,并实现热更新 (基于 Laravel 框架)】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 框架使用,如需支持其他框架,请自行修改兼容
推荐阅读
- ReactNative: 使用AppState的API获取App的状态
- 办公自动化|使用Python由Excel表格中采集数据填充至Word表格特定单元格并批量生成文件
- PySide2|PySide6安装使用及QT Designer UI设计
- python|使用python提取所有word文件中的所有图片
- 使用fidder对安卓模拟器进行抓包
- mapper @Select()注解开发,使用模板 if 和循环
- 安卓开发Webview简单使用
- Python Tkinter按钮使用例子
- uniapp里组件传值的异常情况(Watch方法的使用)
- android : 解决android无法使用sun.misc.BASE64Encoder sun.misc.BASE64Decoder 的问题, 无需添加rt.jar