tp6监听订阅使用

Author Avatar
yyq 2021-07-17 17:07:24
  • 二维码

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

                }



上一篇 返回列表 下一篇

发表评论

Tips:评论内容请文明用语