Laravel - 이벤트 처리

王林
풀어 주다: 2024-08-27 13:50:26
원래의
933명이 탐색했습니다.

이벤트는 사용자가 웹 애플리케이션에서 트리거되는 다양한 이벤트를 구독하고 들을 수 있는 간단한 관찰자 구현을 제공합니다. Laravel의 모든 이벤트 클래스는 app/Events 폴더에 저장되고 리스너는 app/Listeners 폴더에 저장됩니다.

웹 애플리케이션에서 이벤트 및 리스너를 생성하는 artisan 명령은 아래와 같습니다 −

 php artisan event:generate
로그인 후 복사

이 명령은 위에서 설명한 대로 각 폴더에 이벤트와 리스너를 생성합니다.

Event Generator

이벤트와 리스너는 하나의 이벤트에 독립적인 여러 리스너가 있을 수 있으므로 웹 애플리케이션을 분리하는 좋은 방법을 제공합니다. 서로. artisan 명령으로 생성된 이벤트 폴더에는 event.php 및 SomeEvent.php라는 두 파일이 포함되어 있습니다. 여기에 표시됩니다 −

Event.php

<?php
네임스페이스 AppEvents;
추상 클래스 이벤트{
   //
}
로그인 후 복사

위에서 언급했듯이 event.php에는 Event 클래스의 기본 정의가 포함되어 있으며 AppEvents 네임스페이스를 호출합니다. 이 파일에는 사용자 정의 또는 맞춤 이벤트가 생성되므로 주의하세요.

SomeEvent.php

<?php

네임스페이스 AppEvents;

AppEventsEvent를 사용하세요.
IlluminateQueueSerializesModels를 사용하세요.
IlluminateContractsBroadcastingShouldBroadcast를 사용하세요.

클래스 SomeEvent는 이벤트를 확장합니다.{
   SerializesModel을 사용하세요.
   /**      * 새 이벤트 인스턴스를 만듭니다.
      *
      * @return 무효
   */
   
   공개 함수 __construct() {
      //
   }
   
   /**      * 이벤트가 방송되어야 하는 채널을 확인하세요.
      *
      * @return 배열
   */
   
   공개 함수 BroadcastOn() {
      반품 [];
   }
}
로그인 후 복사

이 파일은 웹 애플리케이션에서 이벤트를 브로드캐스팅하기 위해 직렬화를 사용하고 필요한 매개변수도 이 파일에서 초기화된다는 점을 확인하세요.

예를 들어, 이벤트 등록을 위해 생성자에서 순서 변수를 초기화해야 하는 경우 다음을 수행할 수 있습니다. 다음과 같은 방법으로 수행하세요 −

public function __construct(Order $order) {
   $this->주문 = $order;
}
로그인 후 복사

Listeners

Listeners는 등록 중인 이벤트에 언급된 모든 활동을 처리합니다. artisan 명령 event:generateapp/listeners 디렉토리에 모든 listeners를 생성합니다. Listeners 폴더에는 리스너를 처리하는 데 필요한 모든 메서드가 포함된 EventListener.php 파일이 포함되어 있습니다.

EventListener.php

<?php

네임스페이스 AppListener;

AppEventsSomeEvent를 사용하세요.
IlluminateQueueInteractsWithQueue를 사용하세요.
IlluminateContractsQueueShouldQueue를 사용하세요.

클래스 EventListener{
   /**      * 이벤트 리스너를 생성합니다.
      *
      * @return 무효
   */
   
   공개 함수 __construct() {
      //
   }

   /**      * 이벤트를 처리합니다.
      *
      * @param SomeEvent $event
      * @return 무효
   */
   
   공개 함수 핸들(SomeEvent $event) {
      //
   }
}
로그인 후 복사

코드에서도 언급했듯이 다양한 이벤트를 관리하기 위한 handle 함수가 포함되어 있습니다. 단일 이벤트를 대상으로 하는 다양한 독립 리스너를 만들 수 있습니다.

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

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