tp6监听订阅使用
tp6监听、订阅使用方式
Tp6内提供了事件监听,订阅,操作记录如下:
NO1:事件监听部分:
a:手动注册事件监听,在控制器index的构造方法内添加如下:
public function __construct(){
Event::listen('lis_demo', function($param){
echo $param;
});
}
b:控制器内使用监听
public function index(){
event('lis_demo', '监听参数');
}
c:浏览器访问index方法,输出监听参数;
a1:使用监听类实现监听,运行命令 php think make:listener TestListen;将会在根目录生成listen\TestListen.php监听类,文件包含一个handle方法,编写如下:
public function handle($event)
{
echo 'TestListen监听成功';
}
b1:在项目根目录的event.php内注册监听:
'listen' => [
'AppInit' => [],
'HttpRun' => [],
'HttpEnd' => [],
'LogLevel' => [],
'LogWrite' => [],
'TestListen' => ['app\listener\TestListen'],
],
c1:在控制器index内监听
public function index(){
event('TestListen'); //输出TestListen监听成功
}
NO2:事件订阅部分:
a:运行命令 php think make:subscribe TestSub; 将会在根目录下生成 subscribe\TestSub;
b:订阅类自定义多个方法如下:
public function onTestSub1(){
echo("testSub1");
}
public function onTestSub2(){
echo("testSub2");
}
c:在事件文件event.php注册订阅事件:
'subscribe' => [
'app\subscribe\TestSub',
],
d:在index控制器类订阅:
public function index(){
event('TestSub1'); //testSub1
event('TestSub2'); //testSub2
}