thinkphp 之 行为扩展

本文介绍如何在项目中通过行为扩展来添加特定功能,包括创建行为文件、定义行为逻辑及如何在不同阶段触发这些行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

行为扩展,想要在行为中添加某种独立的功能,不必引用,可以直接使用行为扩展的功能
比如在每个行为中添加角色判断的功能,只需增加角色判断的行为,按照tp的规范添加到执行的位置就可以了

创建行为文件 在项目/Lib/Behavior/目录中 或 系统的行为扩展目录Extend/Behavior/ 自动加载
命名:TestBehavior.class.php
内容格式:
class TestBehavior extends Behavior{
    //行为定义参数    可以没有这个属性
    protected $options=array(
    
        'TEST'=>false,    //这里定义的TEST 相当与在config.php文件中 添加了此条作为自定义默认配置,可以在config.php文件中重新定义 并可在C方法中使用,
        //同样的其他配置继续写入
    );
    
    //扩展执行入口
    public function run(&$p)    //引用参数必须有,否则报错 用于返回值
    {
        if(C('TEST')){    //配置文件中开启后执行
            $this->ex_();
        }else{
            //代码段
        }
    }

    public function ex_()
    {
        //代码段
    }
    
}

扩展是使用

一,标签中使用
    在项目配置文件目录 建立tag.php文件
    内容格式:
    return array(
        '标签位'=>'行为名',    //比如TestBehavior 填写 'test'
    );

    标签位可以填写两种
        1,系统定义的标签位
            app_init    应用初始化标签位
            path_info    PATH_INFO检测标签位
            route_check    路由检测标签位
            app_begin    应用开始标签位
            action_name    操作方法名标签位
            action_begin    控制器开始标签位
            view_begin    视图输出开始标签位
            view_template    视图模板解析标签位
            view_parse    视图解析标签位
            view_filter    视图输出过滤标签位
            view_end    视图输出结束标签位
            action_end    控制器结束标签位
            app_end    应用结束标签位

        2,手动放置的标签(在行为中)
            tag('标签位');
            带参数:tag('标签位',变量名); *因为是函数参数是引用,所以必须使用变量名,之后输出变量名即可

    *如果要完全替换系统行为,格式为:
            return array(
                'app_end'=>array('Test','_overlay'=>1), //注意: _overlay 参数
            );

二 函数方式:add_tag_behavior('app_end','Test');

三 Action中直接使用   B('行为类名'); 也可带参数B('行为类名',变量);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值