2012-06-05 3 views

답변

3

이에 대한 온라인 문서의 장입니다.

나는 완전성을 위해 여기에 중요한 부분을 인용합니다 :

취급 핸들() 메소드가 요청을 받아 항상 응답을 반환

요청합니다. 요청을 변환하려면) (핸들 리졸버 및 이벤트 알림의 정렬 된 체인 (각 이벤트에 대한 자세한 내용은 다음 섹션 참조)에 의존 :

  • 어떤 작업을하기 전에 kernel.request 이벤트가 통지 - 리스너 중 하나가 Response를 반환하면 8 단계로 바로 이동합니다.
  • Resolver가 실행될 컨트롤러를 결정하기 위해 호출됩니다.
  • kernel.controller 이벤트의 리스너는 이제 원하는대로 컨트롤러를 호출 할 수 있습니다 (변경, 랩핑 ...).
  • 커널은 컨트롤러가 실제로 유효한 PHP 호출 가능 여부를 확인합니다.
  • Resolver는 Controller에 전달할 인수를 결정하기 위해 호출됩니다.
  • 커널이 컨트롤러를 호출합니다.
  • 컨트롤러가 응답을 반환하지 않으면 kernel.view 이벤트의 리스너는 컨트롤러 반환 값을 Response로 변환 할 수 있습니다.
  • kernel.response 이벤트의 리스너는 Response (내용 및 헤더)를 조작 할 수 있습니다.
  • 응답이 리턴됩니다.

처리 중에 예외가 발생하면 kernel.exception이 통지되고 수신자에게 Exception을 Response로 변환 할 수있는 기회가 주어집니다. 그것이 작동하면 kernel.response 이벤트가 통지됩니다. 그렇지 않은 경우 예외가 다시 발생합니다.

예를 들어 포함 된 요청의 경우 예외를 catch하지 않으려면 false를 handle() 메소드의 세 번째 인수로 전달하여 kernel.exception 이벤트를 비활성화하십시오.

+0

감사합니다 room13, 이것이 내가 찾고있는 것입니다. – milosh012