ThinkPHP CBD模式中 自定义行为

本文介绍了ThinkPHP 3.X中的CBD模式中的行为(Behavior)概念,将其理解为事件侦听机制。详细阐述了如何自定义行为,包括创建TestBehavior.class.php类,实现run方法,并在common.php中注册行为。通过调用tag或Hook::listen即可触发自定义的行为执行。
摘要由CSDN通过智能技术生成

在ThinkPHP 3.X中加入了CBD模式,阅读了一下官方的文档之后,感觉这个CBD模式中的B(Behavior),官方的解释是这样的:

行为(Behavior)是ThinkPHP扩展机制中比较关键的一项扩展,行为既可以独立调用,也可以绑定到某个标签(位)中进行侦听。

而我对于这个的理解,其实就是一种事件的侦听,当我们使用行为这个动作的时候,我们就可以在thinkPHP中任何的地方调用;官方其实已经有写好的一些行为,而这些行为的文件就在 ThinkPHP/Library/Behavior文件夹下面。当我们要使用这些行为的时候,有两个添加侦听的方法。

使用functions.php中的tag(‘标签’,’变量’)

tag('标签',$变量);

或者是使用

Hook::listen('标签',$变量);

调用后,定义好的行为就会执行了;而如果我们想自定义行为那应该怎样操作呢?
1:首先我们要先创建一个新的类,例如TestBehavior.class.php,当然囖我们也需要按照thinkPHP中的文件命名规则来进行命名
2:类创建好之后,我们还需要在这个类中创建一个run的方法(必须的)

class TestBehavior
{
    // 行为扩展的执行入口必须是run
    public function run($params){
        echo 'RUNTEST BEHAVIOR '.$params;
    }
}

3:然后我们还需要为这个行为注册一个行为,注册行为的文件为ThinkPHP->common.php在这个文件里面我们可以看到一些官方已经注册号的行为

// 行为扩展定义
    'tags'  =>  array(
        'app_init'     =>  array(
            'Behavior\BuildLiteBehavior', // 生成运行Lite文件
        ),        
        'app_begin'     =>  array(
            'Behavior\ReadHtmlCacheBehavior', // 读取静态缓存
        ),
        'app_end'       =>  array(
            'Behavior\ShowPageTraceBehavior', // 页面Trace显示
        ),
        'view_parse'    =>  array(
            'Behavior\ParseTemplateBehavior', // 模板解析 支持PHP、内置模板引擎和第三方模板引擎
        ),
        'template_filter'=> array(
            'Behavior\ContentReplaceBehavior', // 模板输出替换
        ),
        'view_filter'   =>  array(
            'Behavior\WriteHtmlCacheBehavior', // 写入静态缓存
        ),
        'test'   =>  array(
            'Behavior\TestBehavior', // 自定义行为
        ),
    ),

到此整个行为就已经注册好了,当我们在项目中调用tags(‘test’, var)Hook::listen(test, 变量);我们所定义的行为就会执行起来了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值