php storm unins,poscms应用钩子开发

基于应用的钩子与自定义钩子功能上一致,唯一不同的是基于应用的钩子能够分享到云商店,以便其他用户使用。

一、挂钩点

挂钩点就是【钩子名称】分类列出的钩子动作,钩子名称就是挂钩点的名称。

二、定义应用的钩子配置

此处与自定义钩子不同,它的配置文件必须通过应用缓存到指定的文件之中。

例如我在【我的应用】中定义一个注册之前的钩子程序。

1、需要在cache更新缓存的方法中写入到配置程序中:

$hook['member_register_before'][] = array(

'class' => 'app_hooks',

'function' => 'reg1',

'filename' => 'app_hooks.php',

'filepath' => '{app}hooks',//这里的{app}标签标示当前应用目录

);

$hook['member_register_before'][] = array(

'class' => 'app_hooks',

'function' => 'reg2',

'filename' => 'app_hooks.php',

'filepath' => '{app}hooks',//这里的{app}标签标示当前应用目录

);

$this->my_model->update_hooks(APP_DIR, $hook);

以上代码所示,一个应用可以定义多个钩子。

注意:钩子的class和文件名必须保持全站的唯一,建议使用当前的应用名称作为前缀,否则不予通过审核。

2、需要在uninstall卸载方法中删除这个配置

$this->my_model->update_hooks(APP_DIR, NULL);//这句就是删除当前应用钩子配置的意思

三、钩子运行程序

按照上面的例子,钩子文件都相对于当前应用的目录,/app/my/hooks/app_hooks.php。

/**

* Created by PhpStorm.

* User: chunjie

* Date: 14-6-25

* Time: 12:51

*/

class app_hooks {

public $ci;

/**

* 构造函数

*/

function __construct() {

$this->ci = &get_instance();

}

// 第一个钩子

function reg1($data) {

log_message('error', '这是执行的是钩子1');

}

// 第二个钩子

function reg2($data) {

log_message('error', '这是执行的是钩子2');

}

}

提示:log_message函数是输出一条错误信息在日志中,开发者懂得!

按照这种配置,在会员注册之前会员按顺序执行以上两个方法。

注意两点:

1、相同文件、相同方法、相同类的钩子程序只运行一次,多个应用时一定不要文件名和类名重复。

2、钩子执行的优先级:应用钩子(不分先后)-> 自定义钩子 -> 模块中的钩子。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值