二 .自定义行为扩展
<?php // 应用行为扩展定义文件 return [ 'test_success'=>['app\admin\behavior\TaskAuditSuccess'],//'test_success'=>[\app\admin\behavior\TaskAuditSuccess::class], ];三 .使用Hook 进行行为监听
<?php /** * @Author: Davax<23136891@qq.com> * @Date: 2020-04-28 09:32:29 * @Last Modified by: zhangyan * @Last Modified time: 2020-09-04 09:19:36 */ namespace app\admin\Controller; use think\Db; use think\Controller; use think\request; use think\facade\Hook; Class Index extends Controller{ public function index(){ Hook::listen('test_success','paramzidingyi'); $data = Db::name('test')->select(); //print_r($data); return view('admin/index'); } }浏览器执行 http://www.tp51.com/index.php/admin/index/index 看到数据库加了数据 扩展 也可以在控制器或需要绑定的地放直接 public function index1(){ Hook::exec(‘app\admin\behavior\Test’,‘run’); } 这样tags就不用定义了
{ $title = '我是title'; Hook::add('index','app\\admin\\behavior\\Test'); //标签位index在行为类Test方法列表中,所以执行fun1方法,即使标签位定义为FUn1,照样执行 //var_dump(Hook::listen('index',$title)); /*标签位index2 不在行为类Test方法列表 默认执行 run方法,若run方法也不存在 则 报错*/ Hook::add('index2','app\admin\behavior\Test'); //var_dump(Hook::listen('index2',$title)); //标签位驼峰命名法 tp5.0.4版本以上,如果行为类Test中方法采用驼峰法命名,要想标签位与之对应,则写成test_order Hook::add('index_test','app\admin\behavior\Test'); var_dump(Hook::listen('index_test',$title)); } /*end*/以上就是自定义行为方法使用了