当前位置: 移动技术网 > IT编程>开发语言>PHP > Thinkphp5行为使用方法汇总

Thinkphp5行为使用方法汇总

2018年01月27日  | 移动技术网IT编程  | 我要评论

在应用或模块下建 behavior目录,目录内建行为类文件test.php(以下以home模块为例)

namespace app/home/behavior;//注意应用或模块的不同命名空间 
class test 
{ 
public function run(&$params)
{   
echo $params;  
} }

方法一

1.在入口文件中,增加: define('app_hook',true);

2.home模块下建tags.php文件定义行为

return [  
'app_init'=> [  
'app//home//behavior//test', //注意行为的命名空间(下同) 
], 
'zzzzz'=> [//自定义标签位   
'app//home//behavior//test', 
], 
//................. ];

3.控制器方法内需要的地方侦听行为

/think/hook::listen('app_init',$params);//参数为变量(下同) /think/hook::listen('zzzzz',$params);//自定义

方法二

1.home模块的公共文件(common.php)或控制器方法内绑定行为到标签位

/think/hook::add('app_init','app//home//behavior//test'); /think/hook::add('zzzz','app//home//behavior//test');//自定义

2.控制器方法内需要的地方侦听行为

/think/hook::listen('app_init',$params); /think/hook::listen('zzzzz',$params);//自定义

方法三

在控制器方法内需要的地方直接执行行为

/think/hook::exec('app//home//behavior//test','run',$params);

方法四

在控制器方法内直接使用闭包函数

$a='闭包函数'; /think/hook::add('zzzz',function($a){ var_dump($a);}); /think/hook::listen('zzzz',$a);

方法五

行为类绑定到多个标签

1.test.php定义如下:

namespace app/home/behavior;
class test {  
public function app_init(&$params){  
echo 'app_init';  } 
 public function app_end(&$params){   
echo 'app_end';  
} }

2.home模块的公共文件(common.php)或控制器方法内绑定行为到标签位

/think/hook::add('app_init','app//home//behavior//test');
/think/hook::add('app_end','app//home//behavior//test');

3.控制器方法内需要的地方侦听行为

/think/hook::listen('app_init',$params); /think/hook::listen('app_end',$params);

总结

以上所述是小编给大家介绍的thinkphp5行为使用方法汇总,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网