Symfony2 - 如何使用EventListener调度图像大小调整

时间:2014-04-14 20:59:36

标签: php symfony

我使用最新的Symfony2-Version构建了一个应用程序。我需要在用户上传后对图片进行调整大小处理 - 这种情况发生在TestController::uploadAction()

现在我得到的信息是EventListener是最好的方法,因为在kernel.terminate我可以在用户得到响应之后做到这一点。

以下问题:

  • 如何将上传图像的数据从Controller获取到EventListener?
  • 如果TestController - uploadAction正在运行且Form获取数据,如何让Listener只运行/交互?

THX

1 个答案:

答案 0 :(得分:1)

首先,您必须发送事件:

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

如果acme_image_upload上有任何侦听器,则将以事件作为参数调用关联的方法。

您可以从有权访问ContainerEventDispatcher的控制器发送活动。

处理多个上下文上传的bundle的一个很好的例子是: https://packagist.org/packages/oneup/uploader-bundle

它使用事件处理不同的上下文,并支持一些最受欢迎的客户端“块”上传者。