迅睿CMS-开发文档-钩子开发说明

时间:2023-08-14 09:49 浏览:0 评论:0
0

钩子特性提供了一种方法来修改框架的内部运作流程,而无需修改核心文件。

有些时候你可能希望在执行流程中的某些阶段添加一些动作,例如在控制器加载之前或之后执行一段脚本, 或者在其他的某些位置触发你的脚本。

钩子程序文件

./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指插件目录,表示这个插件在调用,方便排查是哪个插件在调用这个钩子
1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 迅睿CMS > 迅睿CMS-开发文档-钩子开发说明

用户评论