[수시 업데이트] 라벨의 이벤트 & 청취자 사용을 시도해 보도록 하겠습니다.

나는 laavel6를 사용하여 활동과 청중을 사용하고 싶다.
참고 자료
https://readouble.com/laravel/6.x/ja/events.html

메서드 1 EventeServiceProvider의 listen 등록 메서드


1-1 이벤트 및 청중 만들기


먼저 app/Providers/EventServiceProvider에 다음과 같은 이벤트와 청취자를 등록하였습니다.
EventServiceProvider.php
protected $listen = [
        'App\Events\greetEvent' =>[
            'App\Listeners\greetEventLister'
        ]
    ];
artisan 명령 실행
php artisan event:generate
이 성공하면 다음과 같이 표시됩니다.
Events and listeners generated successfully!
추가
php artisan event:list
면 현재 앱에 등록된 이벤트와 청중을 확인할 수 있습니다.

1-2 구현 이벤트


greetEvent.php
<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class greetEvent
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    /**
     * Create a new event instance.
     *
     * @return void
     */

    public $greet;

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

    /**
     * Get the channels the event should broadcast on.
     *
     * @return \Illuminate\Broadcasting\Channel|array
     */
    public function broadcastOn()
    {
        return new PrivateChannel('channel-name');
    }
}

1-3 청중 설치


greetEventListener.php
<?php

namespace App\Listeners;

use App\Events\greetEvent;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;

class greetEventLister
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  greetEvent  $event
     * @return void
     */
    public function handle(greetEvent $event)
    {
        dd($event->greet);
    }
}

1-4 점화 이벤트


디렉터 내에서 다음 이벤트가 발생합니다.
//省略
event(new greetEvent('こんにちは!'));
//省略
greet Event에 불이 났을 때 이에 대응하는greet Evente Listener의handle을 실행한다.

방법2 이벤트 할인 활용


번역 후 이벤트 발견!알기 쉽다.뭐랄까, 이벤트서비스Provider의 $listen 배열에는 이벤트와 청중이 등록되지 않아도 이벤트와 청중을 사용할 수 있습니다.
php artisan make:event greetEvent2  
 php artisan make:listener greetEvent2Listener
이벤트를handle로 지정하는 매개 변수
greetEvent2Listener
<?php

namespace App\Listeners;

use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use app\Events\greetEvent2;

class greetEvent2Listener
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  object  $event
     * @return void
     */
    public function handle(greetEvent2 $event)
    {
        //
    }
}
그런 다음 Event Service Provider에서 should Discover Events를 다시 작성합니다.이렇게 하면 자동으로 Listeners 디렉토리를 검색하고 이벤트 및 청취자를 등록할 수 있습니다.
EventServiceProvider.php
<?php

namespace App\Providers;

use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Event;

class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        // Registered::class => [
        //     SendEmailVerificationNotification::class,
        // ],
        // 'App\Events\ItemEvent' => [
        //     'App\Listeners\ItemEventLister'
        // ],
        'App\Events\greetEvent' =>[
            'App\Listeners\greetEventLister'
        ]
    ];

    /**
     * Register any events for your application.
     *
     * @return void
     */
    public function boot()
    {
        parent::boot();

        //
    }

    public function shouldDiscoverEvents()
    {
        return true;
    }
}

php artisan event:list
에 등록되었는지 확인할 수 있습니다.

좋은 웹페이지 즐겨찾기