主题:使用 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 框架使用,如需支持其他框架,请自行修改兼容

使用 Swoole 加速你的 CMS 系统,并实现热更新 (基于 Laravel 框架)的更多相关文章

  1. 使用 Swoole 加速你的 CMS 系统

    项目介绍 MyCms是一款基于Laravel开发的开源免费的自媒体博客CMS系统,适用于个人网站及企业网站开发使用,助力个人开发者知识技术变现 Swoole介绍 Swoole: PHP的异步.并行.高 ...

  2. 基于Java的开源CMS系统选择(转)

    CMS概述 对于网站CMS系统而言,基于PHP的是主流,如Drupal/Joomla在各个主流虚拟机提供商上都是标准配置,也被广泛使用. 但如果你拥有Java团队,或者项目目标是想建立一个企业网使用的 ...

  3. 基于jeesite的cms系统(一):开发环境搭建

    基于jeesite的cms系统系列,是对基于jeesite进行二次开发的博客模块开发过程的总结.涉及入门安装,二次开发,部署等 一.概况: JeeSite 是一个 Java 企业级快速开发平台,基于经 ...

  4. 基于Java的开源CMS系统选择

    CMS概述 对于网站CMS系统而言,基于PHP的是主流,如Drupal/Joomla在各个主流虚拟机提供商上都是标准配置,也被广泛使用. 但如果你拥有Java团队,或者项目目标是想建立一个企业网使用的 ...

  5. 国内免费CMS系统大全

    一.ASP类的CMS程序 1.动易CMS 官方网址:http://www.powereasy.net/(可免费下载) 特点:完全免费,ACCESS数据库,主要功能模块:文章频道.下载频道.图片频道.留 ...

  6. CMS系统存储路径

    CMS系统特点:前后端分离 index.html 首页文件index.php 管理后台的页面 api文件夹: 提供的接口 caches文件夹: 缓存文件 html文件夹:  生成的静态页面 phpcm ...

  7. 介绍一款非常适合做微网站并且免费的CMS系统

    在微网站火热的今天,寻找一款具备 web app功能的CMS系统能够大大提高我们的工作效率,eBSite升级到3.0后,开始支持web app 皮肤,也就是创建一个站点,会同时绑定一个PC版皮肤与一个 ...

  8. 打通多个帝国CMS系统的会员整合与同步教程

    例子:我们要整合下面三个帝国CMS系统网站名称分别为"A网站"."B网站"."C网站":安装系统的数据库名分别为"adb" ...

  9. Pagekit – 现代化技术构建的轻量的 CMS 系统

    Pagekit 是一个模块化,轻量的 CMS 系统,基于现代化的技术,如 Symfony 组件和 Doctrine.它提供了一个很好的平台,用于主题和延伸开发.Pagekit 为您提供了工具来创造美丽 ...

随机推荐

  1. Linux重启网卡服务Failed to start LSB: Bring up/down networking.

    Linux网卡重启失败,使用 systemctl status network.service命令进行查看状态,发现启动有异常产生 network.service: control process e ...

  2. SVN在拉取(更新)代码的时候出现Error:svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted问题 ---window版

    简易方法1 今天朋友看到朋友报错这个错误,偷偷学习了下他的方法并做记录以防忘记 简易方法2 今天使用svn时报了一个这个错,网上搜索时都说是要使用sqllite来删除svn队列. 其实可以直接使用id ...

  3. js常用的函数库

    阻止冒泡.默认行为.事件捕获 /* funname preventEventPropagation * desc 阻止冒泡事件&阻止默认行为&阻止事件捕获 * params {name ...

  4. 【每日日报】第三十四天---Scanner类的应用

    1 今天继续看书 Scanner类的应用 1 package File; 2 import java.util.Scanner; 3 4 public class ScannerDemo { 5 pu ...

  5. PAT A1035 Password

    题目描述: To prepare for PAT, the judge sometimes has to generate random passwords for the users. The pr ...

  6. nodejs制作爬虫程序

    在nodejs中,可以通过不断对服务器进行请求,以及本身的fs  =>filesystem 模块和clientRequest模块对网站的资源进行怕取,目前只做到了对图片的趴取!视频文件格式各异, ...

  7. servlet和action的区别

    1.Servlet:默认在第一次访问时被创建,创建一次,单实例对象 2.Action:访问时被创建,每次访问action的时候,都会创建action对象,创建多次,多实例对象

  8. JdGrid排序问题

    JdGrid排序问题 js代码 function gridList() { var $gridList = $("#gridList"); $gridList.dataGrid({ ...

  9. oracle system,sys用户 忘记密码,怎么修改密码

    sys用户是Oracle中权限最高的用户,而system是一个用于数据库管理的用户.在数据库安装完之后,应立即修改sys,system这两个用户的密码,以保证数据库的安全.但是我们有时候会遗忘密码或者 ...

  10. Linux磁盘之inode

    什么是 inode ? 文件储存在硬盘上,硬盘的最小存储单位叫作"扇区"(Sector).每一个扇区储存512字节(至关于0.5KB).操作系统读取硬盘的时候,不会一个个扇区地读取 ...