ThinkPHP3.0完全开发手册                                           

 

13.1.3          行为扩展

行为扩展首先是定义行为类,然后加入某个标签位置即可,内置的行为扩展就是一个很好的扩展示例。行为扩展类继承内置的行为基础类Behavior即可,类的命名规范是:

行为名称+Behavior

行为的执行入口方法是run方法,因此行为类只需要run方法具备public访问权限,入口方法只支持一个参数(可以用数组),并且采用引用方式传参,因此不需要任何返回值。每个行为可以定义options属性,该属性中的参数会自动转换成单独配置参数,下面是一个示例:

class TestBehavior extends Behavior {

    // 行为参数定义

    protected $options   =  array(

'TEST_PARAM'        => false,   //  行为参数 会转换成TEST_PARAM配置参数

    );

    // 行为扩展的执行入口必须是run

    public function run(&$params){

        if(C('TEST_PARAM')) {

            echo 'RUNTEST BEHAVIOR'.$params;

        }

    }

我们把TestBehavior行为扩展类放到项目目录的Lib/Behavior目录下面,其中options属性必须是数组方式定义,而且在行为初始化的同时options属性中的参数会转换成全局的配置参数,所以,我们在入口方法里面可以直接使用:

C('TEST_PARAM')

TEST_PARAM参数是没有预先定义的,行为的options属性里面提供的参数只是一个初始值,所有的参数我们可以在项目配置文件中重新定义。例如,上面的Test行为如果要执行,我们需要在项目配置文件中添加下面的配置:

'TEST_PARAM'        =>true


站长教学网 免责声明