ThinkPHP3.0完全开发手册
行为在新版ThinkPHP的架构里面起着举足轻重的作用,在系统核心之上,设置了很多标签扩展位,而每个标签位置可以依次执行各自的独立行为。行为扩展就因此而诞生了,而且很多系统功能也是通过内置的行为扩展完成的,所有行为扩展都是可替换和增加的,由此形成了底层框架可组装的基础。
系统核心提供的标签位置包括下面几个(按照执行顺序排列):
app_init |
应用初始化标签位 |
route_check |
路由检测标签位 |
app_begin |
应用开始标签位 |
action_name |
操作方法名标签位 |
action_begin |
控制器开始标签位 |
view_begin |
视图输出开始标签位 |
view_template |
视图模板解析标签位 |
view_parse |
视图解析标签位 |
view_filter |
视图输出过滤标签位 |
view_end |
视图输出结束标签位 |
action_end |
控制器结束标签位 |
app_end |
应用结束标签位 |
在每个标签位置,可以配置多个行为定义,行为的执行顺序按照定义的顺序依次执行。除非前面的行为里面中断执行了(某些行为可能需要中断执行,例如检测机器人或者非法执行行为),否则会继续下一个行为的执行。
除了这些系统内置标签之外,开发人员还可以在应用中添加自己的应用标签,例如我们给应用的公共Action类CommonAction添加一个action_init标签位。
Class CommonAction extends Action{
Public function _initialize(){
tag('action_init'); // 添加action_init 标签
}
}
注意:tag函数用于设置某个标签位,可以传入并且只接受一个参数,如果需要传入多个参数,请使用数组,该参数为引用传值,所以只能传入变量。