2014-04-14 4 views
0

최신 Symfony2 버전으로 응용 프로그램을 빌드합니다. 사용자가 이미지를 업로드 한 후에 이미지의 크기 조정 프로세스를 수행해야합니다. 이는 TestController::uploadAction()에서 발생합니다.Symfony2 - EventListener로 이미지 크기 조정을 예약하는 방법

이제 EventListener가 가장 좋은 방법이 될 것이라는 정보를 얻었습니다. kernel.terminate에 사용자가 응답 한 후에 할 수 있기 때문입니다.

다음과 같은 질문 :

  • 는 어떻게의 EventListener에 컨트롤러에서 업로드 된 이미지의 데이터를받을 수 있나요?
  • TestController - uploadAction이 실행 중이고 양식에 데이터가있는 경우에만 Listener를 실행/상호 작용하게 할 수 있습니까? 그런 다음 연결 방법은 인수로 이벤트와 함께 호출됩니다 acme_image_upload에 리스너가있는 경우

    $this->container->get('event_listener')->dispatch('acme_image_upload', new MyUploadEvent($imageData, $correlation)); 
    

    :

들으

+0

"Kernel.terminate에서 사용자가 응답 한 후에 할 수있는 최선의 방법"--- 그렇지 않습니다. 누구든지 당신에게 그것을 말한 사람은 틀 렸습니다. – zerkms

+0

흠, k - 감사합니다 - Symfony IRC 채널에있었습니다 ... 할 일 - 무슨 뜻입니까? – nPoday

+0

그것은 작업에 따라 다릅니다. 하나의 경우에는 일부 대기열 관리자를 사용하고 대기열을 청취하는 작업자가 크기를 조정합니다. – zerkms

답변

1

그럼 먼저는 이벤트를 전달해야합니다.

컨트롤러에서 이벤트를 디스패치하여 Container 또는 EventDispatcher에 액세스 할 수 있습니다.

여러 상황에 대한 업로드를 처리하는 번들의 좋은 예는 이것이다 : https://packagist.org/packages/oneup/uploader-bundle

그것은 다른 컨텍스트뿐만 아니라 가장 인기있는 클라이언트 측의 일부를 지원하는 '청크'업 로더를 처리하기 위해 이벤트를 사용합니다.

관련 문제