이벤트는 사용자가 웹 애플리케이션에서 트리거되는 다양한 이벤트를 구독하고 들을 수 있는 간단한 관찰자 구현을 제공합니다. Laravel의 모든 이벤트 클래스는 app/Events 폴더에 저장되고 리스너는 app/Listeners 폴더에 저장됩니다.
웹 애플리케이션에서 이벤트 및 리스너를 생성하는 artisan 명령은 아래와 같습니다 −
php artisan event:generate
이 명령은 위에서 설명한 대로 각 폴더에 이벤트와 리스너를 생성합니다.
이벤트와 리스너는 하나의 이벤트에 독립적인 여러 리스너가 있을 수 있으므로 웹 애플리케이션을 분리하는 좋은 방법을 제공합니다. 서로. artisan 명령으로 생성된 이벤트 폴더에는 event.php 및 SomeEvent.php라는 두 파일이 포함되어 있습니다. 여기에 표시됩니다 −
<?php 네임스페이스 AppEvents; 추상 클래스 이벤트{ // }
위에서 언급했듯이 event.php에는 Event 클래스의 기본 정의가 포함되어 있으며 AppEvents 네임스페이스를 호출합니다. 이 파일에는 사용자 정의 또는 맞춤 이벤트가 생성되므로 주의하세요.
<?php 네임스페이스 AppEvents; AppEventsEvent를 사용하세요. IlluminateQueueSerializesModels를 사용하세요. IlluminateContractsBroadcastingShouldBroadcast를 사용하세요. 클래스 SomeEvent는 이벤트를 확장합니다.{ SerializesModel을 사용하세요. /** * 새 이벤트 인스턴스를 만듭니다. * * @return 무효 */ 공개 함수 __construct() { // } /** * 이벤트가 방송되어야 하는 채널을 확인하세요. * * @return 배열 */ 공개 함수 BroadcastOn() { 반품 []; } }
이 파일은 웹 애플리케이션에서 이벤트를 브로드캐스팅하기 위해 직렬화를 사용하고 필요한 매개변수도 이 파일에서 초기화된다는 점을 확인하세요.
예를 들어, 이벤트 등록을 위해 생성자에서 순서 변수를 초기화해야 하는 경우 다음을 수행할 수 있습니다. 다음과 같은 방법으로 수행하세요 −
public function __construct(Order $order) { $this->주문 = $order; }
Listeners는 등록 중인 이벤트에 언급된 모든 활동을 처리합니다. artisan 명령 event:generate은 app/listeners 디렉토리에 모든 listeners를 생성합니다. Listeners 폴더에는 리스너를 처리하는 데 필요한 모든 메서드가 포함된 EventListener.php 파일이 포함되어 있습니다.
<?php 네임스페이스 AppListener; AppEventsSomeEvent를 사용하세요. IlluminateQueueInteractsWithQueue를 사용하세요. IlluminateContractsQueueShouldQueue를 사용하세요. 클래스 EventListener{ /** * 이벤트 리스너를 생성합니다. * * @return 무효 */ 공개 함수 __construct() { // } /** * 이벤트를 처리합니다. * * @param SomeEvent $event * @return 무효 */ 공개 함수 핸들(SomeEvent $event) { // } }
코드에서도 언급했듯이 다양한 이벤트를 관리하기 위한 handle 함수가 포함되어 있습니다. 단일 이벤트를 대상으로 하는 다양한 독립 리스너를 만들 수 있습니다.
위 내용은 Laravel - 이벤트 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!