Symfony - EventDispatcher 구성 요소
ringa_lee
ringa_lee 2017-05-16 16:44:48
0
1
356

모두 감사합니다 최근에 Symfony2를 배우고 있는데 지금은 EventDispatcher 구성 요소를 이해할 수 없고 공식 문서도 그다지 명확하지 않습니다. . 해결

ringa_lee
ringa_lee

ringa_lee

모든 응답(1)
黄舟

jQuery에 익숙하시나요? 이벤트 메커니즘은 항상 동일합니다:

(1) 먼저 이벤트 이름을 정의합니다

이것은 js의 onclick과 같으며, Vendor.my_event와 같은 이벤트 이름을 정의할 수 있습니다. 사용하기 쉽도록 "열거" 클래스를 사용하여 이러한 이벤트를 기록할 수 있습니다. 으아악

문자열을 직접 작성하는 대신 코드에서 Events::MY_EVENT를 사용할 수 있습니다. 이 "열거" 클래스를 작성할 필요는 없지만 권장됩니다.

    실수하면 디버깅을 용이하게 하기 위해 오류가 직접 보고됩니다
  1. 간편한 유지 관리를 위해 중앙 집중화하세요(그렇지 않으면 어떤 이벤트가 있는지 잊어버릴 수 있습니다)
(2) 이벤트 클래스 정의(컨텍스트 정의)

jQuery를 사용하면 일반적으로 이벤트 클래스를 직접 정의하지 않지만 실제로 이 이벤트 클래스도 존재합니다(기본 클래스가 사용됨). jQuery의 이벤트 콜백에서 허용되는 첫 번째 매개변수는 이벤트 클래스의 객체이고 이 객체는 e.target과 같은 일부 상황에 맞는 항목을 전달합니다.

sf의 EventDispatcher를 사용하면 유형 검사를 수행하고 콜백에 대한 컨텍스트(일반인의 용어로 이벤트 객체에서 얻을 수 있는 데이터)를 제공하기 위해 자신만의 이벤트 클래스를 정의할 수 있습니다.

으아악

(3) 트리거 이벤트

이벤트 이름과 이벤트 클래스가 있고 SF는 이미 이벤트 디스패처를 갖추고 있습니다. 이벤트를 트리거하는 데 직접 사용할 수 있습니다.

으아악

(4) 리스너 정의(콜백)

으아악

(5) 콜백이 해당 이벤트를 수신하도록 합니다

코드를 사용하여 콜백을 추가할 수 있습니다:

으아악

구성, 즉 종속성 주입(DIC)을 사용할 수도 있습니다.

으아악

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿