Browse Source

fixed finding resources under the main app/ directory

* Now, all resources can be stored globally (templates, assets, ...)
* The new directory is app/Resources/...
Fabien Potencier 14 years ago
parent
commit
a2294106fb

+ 2 - 1
src/Symfony/Bundle/AsseticBundle/DependencyInjection/AsseticExtension.php

@@ -96,6 +96,7 @@ class AsseticExtension extends Extension
         foreach ($bundles as $name) {
             $rc = new \ReflectionClass($map[$name]);
             if (is_dir($dir = dirname($rc->getFileName()).'/Resources/views')) {
+                // FIXME: must also look for templates in %kernel.root_dir%/Resources/%bundle%/views
                 foreach (array('twig', 'php') as $engine) {
                     $container->setDefinition(
                         'assetic.'.$engine.'_directory_resource.'.$name,
@@ -106,7 +107,7 @@ class AsseticExtension extends Extension
         }
 
         // kernel views/ directory
-        if (is_dir($dir = $container->getParameter('kernel.root_dir').'/views')) {
+        if (is_dir($dir = $container->getParameter('kernel.root_dir').'/Resources/views')) {
             foreach (array('twig', 'php') as $engine) {
                 $container->setDefinition(
                     'assetic.'.$engine.'_directory_resource.kernel',

src/Symfony/Bundle/AsseticBundle/Tests/Resources/views/base.html.php → src/Symfony/Bundle/AsseticBundle/Tests/Resources/Resources/views/base.html.php


src/Symfony/Bundle/AsseticBundle/Tests/Resources/views/base.html.twig → src/Symfony/Bundle/AsseticBundle/Tests/Resources/Resources/views/base.html.twig


src/Symfony/Bundle/AsseticBundle/Tests/Resources/views/layout.html.php → src/Symfony/Bundle/AsseticBundle/Tests/Resources/Resources/views/layout.html.php


src/Symfony/Bundle/AsseticBundle/Tests/Resources/views/layout.html.twig → src/Symfony/Bundle/AsseticBundle/Tests/Resources/Resources/views/layout.html.twig


+ 3 - 4
src/Symfony/Bundle/FrameworkBundle/CacheWarmer/TemplatePathsCacheWarmer.php

@@ -23,8 +23,6 @@ use Symfony\Bundle\FrameworkBundle\Templating\TemplateNameParser;
  */
 class TemplatePathsCacheWarmer extends CacheWarmer
 {
-    const TEMPLATES_PATH_IN_BUNDLE = '/Resources/views';
-
     protected $kernel;
     protected $rootDir;
     protected $parser;
@@ -53,10 +51,11 @@ class TemplatePathsCacheWarmer extends CacheWarmer
         $templates = array();
 
         foreach ($this->kernel->getBundles() as $name => $bundle) {
-            $templates += $this->findTemplatesIn($bundle->getPath().self::TEMPLATES_PATH_IN_BUNDLE, $name);
+            $templates += $this->findTemplatesIn($this->rootDir.'/'.$name.'/views', $name);
+            $templates += $this->findTemplatesIn($bundle->getPath().'/Resources/views', $name);
         }
 
-        $templates += $this->findTemplatesIn($this->rootDir);
+        $templates += $this->findTemplatesIn($this->rootDir.'/views');
 
         $this->writeCacheFile($cacheDir.'/templates.php', sprintf('<?php return %s;', var_export($templates, true)));
     }

+ 3 - 3
src/Symfony/Bundle/FrameworkBundle/Resources/config/templating.xml

@@ -29,19 +29,19 @@
 
         <service id="templating.locator" class="%templating.locator.class%" public="false">
             <argument type="service" id="file_locator" />
-            <argument>%kernel.root_dir%</argument>
+            <argument>%kernel.root_dir%/Resources</argument>
         </service>
 
         <service id="templating.locator.cached" class="%templating.locator.cached.class%" public="false">
             <argument>%kernel.cache_dir%</argument>
             <argument type="service" id="file_locator" />
-            <argument>%kernel.root_dir%</argument>
+            <argument>%kernel.root_dir%/Resources</argument>
         </service>
 
         <service id="templating.cache_warmer.template_paths" class="%templating.cache_warmer.template_paths.class%" public="false">
             <argument type="service" id="kernel" />
             <argument type="service" id="templating.name_parser" />
-            <argument>%kernel.root_dir%/views</argument>
+            <argument>%kernel.root_dir%/Resources</argument>
         </service>
 
         <service id="templating.loader.filesystem" class="%templating.loader.filesystem.class%" public="false">