Forráskód Böngészése

[AsseticBundle] added a listener to add common image request formats when use_controller is on

Kris Wallsmith 14 éve
szülő
commit
f9c300e8db

+ 31 - 0
src/Symfony/Bundle/AsseticBundle/Listener/RequestListener.php

@@ -0,0 +1,31 @@
+<?php
+
+/*
+ * This file is part of the Symfony framework.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace Symfony\Bundle\AsseticBundle\Listener;
+
+use Symfony\Component\HttpKernel\Event\GetResponseEvent;
+
+/**
+ * Adds a few formats to each request.
+ *
+ * @author Kris Wallsmith <kris.wallsmith@symfony.com>
+ */
+class RequestListener
+{
+    public function onCoreRequest(GetResponseEvent $event)
+    {
+        $request = $event->getRequest();
+
+        $request->setFormat('png', 'image/png');
+        $request->setFormat('jpg', 'image/jpeg');
+        $request->setFormat('gif', 'image/gif');
+    }
+}

+ 4 - 0
src/Symfony/Bundle/AsseticBundle/Resources/config/controller.xml

@@ -9,6 +9,7 @@
         <parameter key="assetic.routing_loader.class">Symfony\Bundle\AsseticBundle\Routing\AsseticLoader</parameter>
         <parameter key="assetic.cache.class">Assetic\Cache\FilesystemCache</parameter>
         <parameter key="assetic.use_controller_worker.class">Symfony\Bundle\AsseticBundle\Factory\Worker\UseControllerWorker</parameter>
+        <parameter key="assetic.request_listener.class">Symfony\Bundle\AsseticBundle\Listener\RequestListener</parameter>
     </parameters>
 
     <services>
@@ -27,5 +28,8 @@
         <service id="assetic.use_controller_worker" class="%assetic.use_controller_worker.class%" public="false">
             <tag name="assetic.factory_worker" />
         </service>
+        <service id="assetic.request_listener" class="%assetic.request_listener.class%">
+            <tag name="kernel.listener" event="onCoreRequest" />
+        </service>
     </services>
 </container>