zoukankan      html  css  js  c++  java
  • 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也被注册,也能得到通知。

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

  • 相关阅读:
    HDU 3697贪心
    HDU 3226 背包
    numpy_2nd 新建矩阵的五种方法 array zeros empty arange().reshape()
    numpy_1st 属性 ndim,shape,size
    CV学习笔记第二课(上)
    33. 搜索旋转排序数组 二分法
    35. 搜索插入位置 今天就是二分法专场
    34.在排序数组中查找元素的第一个和最后一个位置 二分法
    CV第三课
    CV第二课(下)
  • 原文地址:https://www.cnblogs.com/ziyouchutuwenwu/p/4274539.html
Copyright © 2011-2022 走看看