tp5中行为标签位的应用

时间:2017-03-13 00:07:33 类型:PHP
字号:    

tp5中行为的出现,为我们想在应用前后,模型,控制器初始化前后等想做的一些事情提供了便利[这里的行为在早期框架一般称为钩子, 有些现在的框架称之为中间件].

行为, 就是一些动作,  标签位, 就是可以设置行为的位置;

可以理解为标签位[适合放置地雷的地方]绑定行为[放一颗地雷, 留一根线链着标签].

实际应用如下:

1.  application\common.php文件中

    

use think\Hook;
Hook::listen("action_init",$params);
//在放地雷的位置action_init设置个监听器, 一旦运行到这个位置, 就拉线
2. application\tags.php
return [
    // 应用初始化
    'app_init'     => ['app\\index\\behavior\\Test'],
 //让监听的位置的线 连着 地雷
    // 应用开始
    'app_begin'    => [],
    // 模块初始化
    'module_init'  => [],
    // 操作开始执行
    'action_begin' => [],
    // 视图内容过滤
    'view_filter'  => [],
    // 日志写入
    'log_write'    => [],
    // 应用结束
    'app_end'      => [],
];


3. app\index\behavior文件夹下设置地雷[行为], 当运行到action_init, 这里就爆炸了


namespace app\index\behavior;
class Test{
	public function appInit(&$params){
		echo "注意: 地雷要爆炸了,</br>";
		if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 8.0"))echo "Internet Explorer 8.0";
		else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 7.0"))
		else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera"))
		echo "Opera";
		else echo $_SERVER["HTTP_USER_AGENT"];
	}
	public function appEnd(&$params)
    {
    	echo "讲话结束了,我宣布散会,大家回去休息吧";
    } 
}


Ok, 到这里, 当们在浏览器中运行时, 一定会经过 action_init的位置, 然后就一定会爆炸了