钩子开发说明
迅睿函数大全迅睿基础设置迅睿二次开发迅睿模版制作迅睿缓存在线生成迅睿CMS标签大全
钩子特性提供了一种方法来修改框架的内部运作流程,而无需修改核心文件。
有些时候你可能希望在执行流程中的某些阶段添加一些动作,例如在控制器加载之前或之后执行一段脚本, 或者在其他的某些位置触发你的脚本。
钩子程序文件
./config/hooks.php 此文件是网站钩子的定义文件,你可以把脚本写在这里。
执行方法格式
\Phpcmf\Hooks::on(挂钩点名称, 执行代码函数, 执行序号越大越优先); 或者 \Phpcmf\Hooks::app_on(插件名称, 挂钩点名称, 执行代码函数, 执行序号越大越优先);
挂钩点名称,由系统提供以便二次开发。
执行代码,你可以使用lambda表达式(匿名函数或闭包)作为钩子执行,这样语法更简单:
// appname指插件目录,表示这个插件在调用,方便排查是哪个插件在调用这个钩子
\Phpcmf\Hooks::app_on('appname', 'some_hook', function($foo, $bar, $baz) {
...
});执行序号,越大越靠前执行,不传入就按默认顺序。
一、系统自带的钩子
系统会内置一些常用的钩子,例如:
CMS_init 系统初始化后执行 CMS_close 系统关闭时 CMS_end 系统post执行结束时 CMS_404 系统404时 CMS_view 模板解析之后 ....
我们会根据开发者的需求来增加一些常用的钩子,当开发者需要时,可以给框架创始人提出。
二、自定义:无返回值的钩子
定义钩子点
\Phpcmf\Hooks::trigger('CMS_diy_hook');定义执行钩子函数
// appname指插件目录,表示这个插件在调用,方便排查是哪个插件在调用这个钩子
\Phpcmf\Hooks::app_on('appname', 'CMS_diy_hook', function() {
// 这里写执行代码
});三、自定义:有返回值的钩子
定义钩子点
$rs = \Phpcmf\Hooks::trigger_callback('CMS_diy_hook_callback');
if ($rs && isset($rs['code']) && $rs['code']) {
var_dump($rs); // 打印返回格式
}定义执行钩子函数
// appname指插件目录,表示这个插件在调用,方便排查是哪个插件在调用这个钩子
\Phpcmf\Hooks::app_on('appname', 'CMS_diy_hook', function() {
// 这里写执行代码
return dr_return_data(1, '表示之间返回的值,也就是最终的值,不往下面执行');
return false; // 表示可以执行下面的钩子
}); 本文属原创,转载请注明原文:https://www.zhimatong.com/jiaocheng/1048.html
为保证教程的实用性及扩大知识面覆盖,如果您有相似问题而未解决,可联系在线客服免费技术支持。
热门主题
相关阅读
- Bootstrap的datetimepicker插件用法总结(基于迅睿CMS)
- 迅睿CMS网站搬家,迁移服务器和变更域名的方法(从测试到交付)
- 迅睿CMS功能二次开发教程:新增自定义API支付方式接口【以ypay(易支付)为例】
- 迅睿Codeigniter框架二次开发提示You must use the "set" method to update an entry.的方法
- 迅睿开发者模式如何用,迅睿CMS如何去掉页面右下角的火的标志
- 迅睿CMS会员登录/注册后跳转到指定链接的方法
- 迅睿CMS整合layui+ajax实现联动菜单多条件搜索的方法
- 迅睿CMS联动菜单制作全国城市分站点的方法
- 迅睿CMS通过URL找到路由控制器的方法
- 迅睿CMS表单提示"需要在表单插件后台,开启发布权限"的解决方法
- 迅睿CMS多模块内容循环modules标签_多模块搜索使用
- 迅睿CMS数据迁移,数据库导入提示“Unknown character set: 'utf8mb4'”的解决方法



交流群
购物车