国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

使用了laravel的db庫(kù),并且記錄了db的sql日志,想要直接使用laravel的event庫(kù),按laravel的文檔使用不了,有大神給下解決方案嗎

使用了laravel的db庫(kù),并且記錄了db的sql日志,想要直接使用laravel的event庫(kù),按laravel的文檔使用不了,有大神給下解決方案嗎

1644 2 2
2個(gè)回答

2548a

http://m.wtbis.cn/a/1261
評(píng)論里有使用laravel 事件庫(kù)的

yzh52521

laravel event事件使用

namespace support;

use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;

/**
 *  class Event
 * @package support
 *
 *  Strings methods
 * @method static \Illuminate\Events\Dispatcher dispatch($event)
 */
class Event
{
    /**
     * @var Dispatcher
     */
    protected static $instance=null;

    /**
     * @return Dispatcher|null
     */
    public static function instance()
    {
        if (!static::$instance) {
            $container        = new Container;
            static::$instance = new Dispatcher($container);
            $eventsList       = config('events');
            if (isset($eventsList['listener']) && !empty($eventsList['listener'])) {
                foreach ($eventsList['listener'] as $event => $listener) {
                    if (is_string($listener)) {
                        $listener = implode(',', $listener);
                    }
                    foreach ($listener as $l) {
                        static::$instance->listen($event, $l);
                    }
                }
            }
            if (isset($eventsList['subscribe']) && !empty($eventsList['subscribe'])) {
                foreach ($eventsList['subscribe'] as  $subscribe) {
                    static::$instance->subscribe($subscribe);
                }
            }
        }
        return static::$instance;
    }

    /**
     * @param $name
     * @param $arguments
     * @return mixed
     */
    public static function __callStatic($name, $arguments)
    {
        return self::instance()->{$name}(... $arguments);
    }

}

配置
config/events.php

return [
    'listener'  => [
        app\events\Test::class => [
            \app\listeners\TestListeners::class,
        ],
    ],
    'subscribe' => [
        \app\subscribes\TestSubscribe::class,
    ],
];

事件類:Test

namespace app\events;

class Test
{
    public  $data = [];

    public function __construct($data)
    {
        $this->data = $data;
    }
}

監(jiān)聽(tīng)類

namespace app\listeners;

use app\events\Test;

class TestListeners
{
    public function __construct()
    {
    }

    /**
     * 處理事件
     * @return void
     */
    public function handle(Test $event)
    {
        // 控制臺(tái)打印
        var_dump('listener');
        var_dump($event->data);
    }
}

訂閱類

namespace app\subscribes;

use app\events\Test;

class TestSubscribe
{
    public function handleTest(Test $event)
    {
        var_dump('subscribe');
        var_dump($event);
    }

    public function subscribe($events)
    {
        $events->listen(
            Test::class,
            [TestSubscribe::class, 'handleTest']
        );
    }
}

helpers.php 增加

/**
 * 事件
 * @param $event
 */
function event($event)
{
    Event::dispatch($event);
}

調(diào)用觸發(fā)事件

event(new Test('event data'));
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??