Przeglądaj źródła

Merge remote branch 'kriswallsmith/assetic/new-resource-interface'

* kriswallsmith/assetic/new-resource-interface:
  [AsseticBundle] updated resource for new interface
Fabien Potencier 14 lat temu
rodzic
commit
57d0d3fe2f

+ 3 - 13
src/Symfony/Bundle/AsseticBundle/Factory/FileResource.php

@@ -11,7 +11,7 @@
 
 namespace Symfony\Bundle\AsseticBundle\Factory;
 
-use Assetic\Factory\Resource\FileResourceInterface;
+use Assetic\Factory\Resource\ResourceInterface;
 use Symfony\Bundle\FrameworkBundle\Templating\TemplateReference;
 use Symfony\Component\Templating\Loader\LoaderInterface;
 
@@ -20,7 +20,7 @@ use Symfony\Component\Templating\Loader\LoaderInterface;
  *
  * @author Kris Wallsmith <kris.wallsmith@symfony-project.com>
  */
-class FileResource implements FileResourceInterface
+class FileResource implements ResourceInterface
 {
     protected $loader;
     protected $parser;
@@ -56,7 +56,7 @@ class FileResource implements FileResourceInterface
         return $this->loader->load($this->getTemplate())->getContent();
     }
 
-    public function getPath()
+    public function __toString()
     {
         return $this->path;
     }
@@ -77,14 +77,4 @@ class FileResource implements FileResourceInterface
 
         return new TemplateReference($bundle, implode('/', $parts), $elements[0], $elements[1], $elements[2]);
     }
-
-    public function __sleep()
-    {
-        return array('path');
-    }
-
-    public function __wakeup()
-    {
-        throw new \Exception(__CLASS__.' cannot be unserialized.');
-    }
 }

+ 7 - 8
src/Symfony/Bundle/AsseticBundle/Routing/AsseticLoader.php

@@ -12,7 +12,6 @@
 namespace Symfony\Bundle\AsseticBundle\Routing;
 
 use Assetic\Factory\LazyAssetManager;
-use Assetic\Factory\Resource\FileResourceInterface;
 use Symfony\Component\Config\Loader\Loader;
 use Symfony\Component\Config\Resource\FileResource;
 use Symfony\Component\Routing\Route;
@@ -44,18 +43,18 @@ class AsseticLoader extends Loader
         $this->am = $am;
     }
 
-    public function load($resource, $type = null)
+    public function load($routingResource, $type = null)
     {
         $routes = new RouteCollection();
 
         // resources
-        foreach ($this->am->getResources() as $resource) {
-            if (!$resource instanceof \Traversable) {
-                $resource = array($resource);
+        foreach ($this->am->getResources() as $resources) {
+            if (!$resources instanceof \Traversable) {
+                $resources = array($resources);
             }
-            foreach ($resource as $r) {
-                if ($r instanceof FileResourceInterface) {
-                    $routes->addResource(new FileResource($r->getPath()));
+            foreach ($resources as $resource) {
+                if (file_exists($path = (string) $resource)) {
+                    $routes->addResource(new FileResource($path));
                 }
             }
         }