doushi9376 2019-01-11 13:26
浏览 79

为什么我的Laravel Lumen听众被叫两次?

My listener is being called twice, but the event is fired only once.

I got the code from Lumen 5.7 example and have no idea where is my mistake.

bootstrap/app.php

$app->register(App\Providers\EventServiceProvider::class);

app/Providers/EventServiceProvider.php

protected $listen = [
    'App\Events\NewAuthEvent' => [
        'App\Listeners\SendNewAuthListener',
    ],
];

app/Events/NewAuthEvent.php

use Illuminate\Queue\SerializesModels;
use App\Data\Entity\User;
use App\Data\Entity\Authorization;
use Illuminate\Support\Facades\Log;

class NewAuthEvent
{
    use SerializesModels;

    public $user;

    public $auth;

    public function __construct(User $user, Authorization $auth)
    {
        Log::debug("once :)");
        $this->user = $user;
        $this->auth = $auth;
    }
}

app/Listeners/SendNewAuthListener.php

use App\Events\NewAuthEvent;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\Data\Service\MessengerService;
use Illuminate\Support\Facades\Log;

class SendNewAuthListener
{
    private $messenger;

    public function __construct(MessengerService $messenger)
    {
        Log::debug("twice :(");
        $this->messenger = $messenger;
    }

    public function handle(NewAuthEvent $event)
    {
        Log::debug("twice as well :(");
        $this->messenger->new($event->user, $event->auth);
    }
}

firing the event:

event(new NewAuthEvent($objUser, $objAuthorization));

What am I missing? Is there some other parameter or config to be seted?

Thanks in advance!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 基于卷积神经网络的声纹识别
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题