> 백엔드 개발 > PHP 튜토리얼 > Laravel의 맞춤형 이벤트

Laravel의 맞춤형 이벤트

William Shakespeare
풀어 주다: 2025-03-04 09:07:10
원래의
111명이 탐색했습니다.

이 기사에서는 Laravel의 이벤트 관리의 기본 사항을 탐색 할 것입니다. 또한 사용자 정의 이벤트 및 리스너의 실제 예제를 만들어 낼 것입니다.

Custom Events in Laravel Laravel의 이벤트 개념은 매우 인기있는 소프트웨어 디자인 패턴 인 관찰자 패턴을 기반으로합니다. 이 패턴에서 시스템은 무언가가 발생할 때 이벤트를 제기하며 이러한 이벤트를 듣고 그에 따라 반응하는 청취자를 정의 할 수 있습니다. 시스템에서 구성 요소를 분리 할 수있는 정말 유용한 기능입니다. 그렇지 않으면 엄격하게 결합 된 코드가 발생했을 수 있습니다. 예를 들어, 누군가가 사이트에 로그인 할 때 시스템의 모든 모듈에 알리려고한다고 가정 해 봅시다. 따라서, 이메일 또는 인앱 알림을 보내 거나이 로그인 이벤트에 반응하고자하는 문제에 대해이 로그인 이벤트에 반응 할 수 있습니다. 이벤트 및 청취자의 기본

이 섹션에서는 Laravel의 이벤트 및 청취자를 핵심 프레임 워크에서 구현하는 방법을 탐색합니다. Laravel의 아키텍처에 익숙하다면 Laravel은 서비스 제공 업체의 개념을 구현한다는 것을 알고있을 것입니다. 이는 다른 서비스를 응용 프로그램에 주입 할 수 있습니다.

마찬가지로 Laravel은 내장을 제공하여 이벤트 리스너 맵핑을 애플리케이션에 정의 할 수 있도록합니다. app/Providers/EventServiceProvider.php

file.

Let's have a close look at the login

event.

Of course, you need to define the artisan command.

This command generates event and listener classes listed under the artisan command to generate a base 템플릿 코드.

<?php<br><br>namespace App\Providers;<br><br>use Illuminate\Auth\Events\Registered;<br>use Illuminate\Auth\Listeners\SendEmailVerificationNotification;<br>use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;<br>use Illuminate\Support\Facades\Event;<br><br>class EventServiceProvider extends ServiceProvider<br>{<br>    /**<br>     * The event listener mappings for the application.<br>     *<br>     * @var array<br>     */<br>    protected $listen = [<br>        Registered::class => [<br>            SendEmailVerificationNotification::class,<br>        ],<br>    ];<br><br>    /**<br>     * Register any events for your application.<br>     *<br>     * @return void<br>     */<br>    public function boot()<br>    {<br>        parent::boot();<br><br>        //<br>    }<br>}<br>
로그인 후 복사
로그인 후 복사

는 app/events/events/clearcache.php 에서 이벤트 클래스를 생성하고 app/warlupcache.php

에서 청취자 클래스를 생성해야했습니다.

아마도 알았 듯이 새로운 속성 이벤트

헬퍼 함수를 ​​추가하여 응용 프로그램 내 어디서나 이벤트를 제기하는 데 사용되었습니다. 이벤트가 제기되면 Laravel은 모든 청취자에게 해당 이벤트를 듣습니다.
php artisan event:generate<br>
로그인 후 복사
로그인 후 복사
우리의 경우 applistenerswarmupcache <p> 리스너는 <code> appeventsclearcache 이벤트를 듣도록 설정됩니다. 따라서 <code> anplistenerswarmupcache <code> hange 메소드는 컨트롤러에서 이벤트가 제기 될 때 청취자가 호출됩니다. 나머지는 청소 된 캐시를 예열하는 것입니다!

php artisan event:generate<br>
로그인 후 복사
로그인 후 복사
그래서 응용 프로그램에서 사용자 정의 이벤트를 만들고 그들과 함께 일할 수있는 방법입니다.

. 이벤트 가입자 란 무엇입니까?

이벤트 가입자를 사용하면 한 장소에서 여러 이벤트 리스너를 구독 할 수 있습니다. 논리적으로 그룹 이벤트 청취자를 원하거나 단일 장소에 성장하는 이벤트를 포함 시키려고하든, 당신이 찾고있는 이벤트 가입자입니다.

이 이벤트 가입자를 사용 하여이 기사에서 지금까지 논의 된 예제를 구현했다면, 이렇게 보일 수 있습니다.

리스를 등록하는 데 책임이있는 방법입니다. 메소드의 첫 번째 인수는
<?php<br><br>namespace App\Providers;<br><br>use Illuminate\Auth\Events\Registered;<br>use Illuminate\Auth\Listeners\SendEmailVerificationNotification;<br>use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;<br>use Illuminate\Support\Facades\Event;<br><br>class EventServiceProvider extends ServiceProvider<br>{<br>    /**<br>     * The event listener mappings for the application.<br>     *<br>     * @var array<br>     */<br>    protected $listen = [<br>        Registered::class => [<br>            SendEmailVerificationNotification::class,<br>        ],<br>    ];<br><br>    /**<br>     * Register any events for your application.<br>     *<br>     * @return void<br>     */<br>    public function boot()<br>    {<br>        parent::boot();<br><br>        //<br>    }<br>}<br>
로그인 후 복사
로그인 후 복사
메소드를 사용하여 청취자와 이벤트를 바인딩하는 데 사용할 수있는

클래스의 인스턴스입니다. subscribe subscribe 메소드의 첫 번째 인수는 듣고 싶은 이벤트이며, 두 번째 논쟁은 이벤트가 제기 될 때 청취자가 될 때 청취자가 될 때 청취자가 될 수 있습니다. 자체. IlluminateEventsDispatcher 이벤트 가입자 클래스는 자동으로 선택되지 않습니다. 다음 스 니펫에서 볼 수 있듯이 클래스에 listen

클래스에 등록해야합니다.

그래서 그것은 당신의 처분에서 이벤트 가입자 클래스였습니다. 그리고 우리 가이 기사의 끝에 도달했을 때, 우리는 오늘 우리가 논의했습니다. LARAVEL —Events와 청취자. 이들은 관찰자 설계 패턴을 기반으로하는데, 이는 응용 프로그램 전체 이벤트를 높이고 다른 모듈이 해당 이벤트를 듣고 그에 따라 반응 할 수 있도록 허용합니다.

위 내용은 Laravel의 맞춤형 이벤트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿