ThinkPHP3.0完全开发手册
行为扩展首先是定义行为类,然后加入某个标签位置即可,内置的行为扩展就是一个很好的扩展示例。行为扩展类继承内置的行为基础类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