• laravel里面使用event


    模式:大概是通过一个自定义的event,一个handler,还有一个binder,然后用来简化通知模型

    生成自定义的event

    ./artisan make:event MyEvent

    生成自定义的handler

    ./artisan handler:event MyEventHandler --event=MyEvent

    然后在EventServiceProvider里面添加,可以添加多个,演示就只注册一个了

    protected $listen = [
            'AppEventsMyEvent' => [
                'AppHandlersEventsMyEventHandler',
            ],
        ];

    如果你要多个handler,可以先在EventServiceProvider里面写好,然后命令

    ./artisan event:generate

    触发event

    $aaaa = 'sfsdfsdf';
    $response = Event::fire(new AppEventsMyEvent($aaaa));

    你会发现,在handler的handle方法被触发,不过看phpdoc,这个方法似乎是void返回,不知道这个response有什么用处

    --------------------------------------------------------------------------------------------------------------------------------------------

    注册event事件组

    保留上面的MyEvent,别的不要了

    注册我们的MyEventGroupHandler,这里演示一个event,subscribe方法必须定义

    <?php namespace App;
    
    class MyEventGroupHandler {
    
        /**
         * Handle user login events.
         */
        public function onMyEvent($event)
        {
            echo "MyEventGroupHandler";
            dd($event);
        }
    
        /**
         * Register the listeners for the subscriber.
         *
         * @param  IlluminateEventsDispatcher  $events
         * @return array
         */
        public function subscribe($events)
        {
            $events->listen('AppEventsMyEvent', 'AppMyEventGroupHandler@onMyEvent');
        }
    }

    动态注册监听event

    $subscriber = new AppMyEventGroupHandler;
    Event::subscribe($subscriber);

    触发事件

    $podcast = 'sfsdfsdf';
    $response = Event::fire(new AppEventsMyEvent($podcast));

    xdebug发现,MyEventGroupHandler的onMyEvent被断下

    如果原来的myEventHandler也被注册,也能得到通知。

    发现两种方式似乎没太大区别,一个静态注册,另一个动态注册,留着以后再说吧

  • 相关阅读:
    你不是在拯救世界就是在拯救世界的路上
    你可以去当程序员了
    郭美美是个好姑娘
    据说有个老太太
    生命的尽头
    有关程序的50个至理名言
    程序员是这样的
    新买移动硬盘
    如果有天你看到我疯了,其实就是你疯了
    写字楼里写字间
  • 原文地址:https://www.cnblogs.com/ziyouchutuwenwu/p/4274539.html
Copyright © 2020-2023  润新知