入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

thinkphp5之行为整理

创建时间:2016-07-17 投稿人: 浏览次数:892
在应用或模块下建 behavior目录,目录内建行为类文件Test.php(以下以home模块为例)
  1. namespace apphomeehavior;//注意应用或模块的不同命名空间
  2. class Test {
  3.     public function run(&$params){
  4.         echo $params;
  5.     }
  6. }
复制代码 方法一
1.在入口文件中,增加: define("APP_HOOK",true);
2.home模块下建tags.php文件定义行为
  1. return [
  2.     "app_init"=> [
  3.         "app\home\behavior\Test", //注意行为的命名空间(下同)
  4.     ],
  5.     "zzzzz"=> [//自定义标签位
  6.         "app\home\behavior\Test",
  7.     ],
  8.     //.................
  9. ];
复制代码 3.控制器方法内需要的地方侦听行为
  1. hinkHook::listen("app_init",$params);//参数为变量(下同)
  2. hinkHook::listen("zzzzz",$params);//自定义
复制代码 方法二
1.home模块的公共文件(common.php)或控制器方法内绑定行为到标签位
  1. hinkHook::add("app_init","app\home\behavior\Test");
  2. hinkHook::add("zzzz","app\home\behavior\Test");//自定义
复制代码 2.控制器方法内需要的地方侦听行为
  1. hinkHook::listen("app_init",$params);
  2. hinkHook::listen("zzzzz",$params);//自定义
复制代码 方法三
在控制器方法内需要的地方直接执行行为
  1. hinkHook::exec("app\home\behavior\Test","run",$params);
复制代码
方法四
在控制器方法内直接使用闭包函数
  1. $a="闭包函数";
  2. hinkHook::add("zzzz",function($a){ var_dump($a);});
  3. hinkHook::listen("zzzz",$a);
复制代码 方法五
行为类绑定到多个标签
1.Test.php定义如下:
  1. namespace apphomeehavior;
  2. class Test {
  3.     public function app_init(&$params){
  4.         echo "app_init";
  5.     }
  6.     public function app_end(&$params){
  7.         echo "app_end";
  8.     }
  9. }
复制代码 2.home模块的公共文件(common.php)或控制器方法内绑定行为到标签位
  1. hinkHook::add("app_init","app\home\behavior\Test");
  2. hinkHook::add("app_end","app\home\behavior\Test");
复制代码 3.控制器方法内需要的地方侦听行为
  1. hinkHook::listen("app_init",$params);
  2. hinkHook::listen("app_end",$params);
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像