文件名称:不放入标签直接执行-图像目标检测技术及应用
文件大小:2.49MB
文件格式:PDF
更新时间:2024-06-23 17:51:12
ThinkPHP3.1
ThinkPHP3.1 完全开发手册 290 1. return array( 2. 'app_end'=>array('Test','_overlay'=>1), 3. ); 表示 app_end 标签位用定义的应用行为完全替换该位置的系统行为,也就是说即使系统标签在 app_end 定义了其他的系统行为也不会被执行,但是必须注意,行为的命名不要和系统行为一样。 二、函数方式动态定义 除了定义 tags 行为配置文件之外,系统还提供了动态添加行为到标签位的方法,例如我们可以使用下面的 方式添加 Test 行为到 app_end 标签位,而无需在 tags 文件中添加定义: add_tag_behavior('app_end','Test'); 表示把 Test 行为添加到 app_end 标签位的最后,你可以把这个代码放到项目的公共函数文件中甚至直接 放到行为类的最后(如果你确定这个行为扩展只有你的项目会用到的话)。 应用行为扩展类除了放到项目类库的 Behavior 目录外, 还可以放到系统的行为扩展目录 Extend/Behavior/,行为类在执行过程中会自动加载。 三、不放入标签直接执行 有时候,行为的调用不一定要放到标签才能调用,如果需要的话,我们可以在控制器中直接调用行为。例 如,我们可以把用户权限检测封装成一个行为类,例如: 1. class AuthCheckBehavior extends Behavior { 2. // 行为参数定义 3. protected $options = array( 4. 'USER_AUTH_ON' =>false, // 是否开启用户认证 5. 'USER_AUTH_ID' => 'user_id', // 定义用户的 id为权限认证字段 6. ); 7. // 行为扩展的执行入口必须是 run 8. public function run(&$return){ 9. if(C('USER_AUTH_ON ')) { 10. // 进行权限认证逻辑 如果认证通过 $return = true; 11. // 否则用 halt输出错误信息