迅睿CMS:钩子开发说明
钩子特性提供了一种方法来修改框架的内部运作流程,而无需修改核心文件。
有些时候你可能希望在执行流程中的某些阶段添加一些动作,例如在控制器加载之前或之后执行一段脚本, 或者在其他的某些位置触发你的脚本。
钩子程序文件
./config/hooks.php 此文件是网站钩子的定义文件,你可以把脚本写在这里。
执行方法格式
\Phpcmf\Hooks::on(挂钩点名称, 执行代码函数, 执行序号越大越优先); 或者 \Phpcmf\Hooks::app_on(插件名称, 挂钩点名称, 执行代码函数, 执行序号越大越优先);
挂钩点名称,由系统提供以便二次开发。
执行代码,你可以使用lambda表达式(匿名函数或闭包)作为钩子执行,这样语法更简单:
// appname指插件目录,表示这个插件在调用,方便排查是哪个插件在调用这个钩子
执行序号,越大越靠前执行,不传入就按默认顺序。
一、系统自带的钩子
系统会内置一些常用的钩子,例如:
cms_init 系统初始化后执行 cms_close 系统关闭时 cms_end 系统post执行结束时 cms_404 系统404时 cms_view 模板解析之后 ....
我们会根据开发者的需求来增加一些常用的钩子,当开发者需要时,可以给框架创始人提出。
二、自定义:无返回值的钩子
定义钩子点
\Phpcmf\Hooks::trigger('cms_diy_hook');
定义执行钩子函数
// appname指插件目录,表示这个插件在调用,方便排查是哪个插件在调用这个钩子
三、自定义:有返回值的钩子
定义钩子点
定义执行钩子函数
// appname指插件目录,表示这个插件在调用,方便排查是哪个插件在调用这个钩子
相关文档
- 迅睿CMS:程序兼容检测:安装某些应用插件
- 迅睿CMS:后台字段回调格式无效
- 迅睿CMS:图片验证码不正确
- 迅睿CMS:没有给当前站点分配管理菜单权限
- 迅睿CMS:从详细内容中自动提取简介字段(description...
- 迅睿CMS:后台列表页面没有数据
- 迅睿CMS:数据库提示 index column size to...
- 迅睿CMS:快捷登录注册页面升级
- 迅睿CMS:用户组支持在线付款的升级
- 迅睿CMS:测试版升级到正式版
- 迅睿CMS:如何排查js错误
- 迅睿CMS:content类二次开发升级说明
- 迅睿CMS:宝塔导致后台无法登录提示系统故障
- 迅睿CMS:后台登录故障{"code":1,...
- 迅睿CMS:升级没成功/升级出现故障/怎么办
- 迅睿CMS:缩略图/单文件/多文件开启远程下载功能
- 迅睿CMS:404页面设置/404状态码
- 迅睿CMS:分页标签的统计标签样式缺失
- 迅睿CMS:4.5.3手动升级用户系统插件
- 迅睿CMS:防止垃圾信息提交/预防灌水