From 3ba14604a735f460ba0bd819572d04e1319dec7b Mon Sep 17 00:00:00 2001 From: yethee Date: Sun, 20 Sep 2015 23:05:20 +0300 Subject: [PATCH] [FrameworkBundle] Advanced search templates of bundles It uses two different locations to search templates of bundle, as described in the documentation. --- .../Bundle/FrameworkBundle/CacheWarmer/TemplateFinder.php | 6 +++++- .../Tests/CacheWarmer/TemplateFinderTest.php | 3 ++- .../Fixtures/Resources/BaseBundle/views/base.format.engine | 0 .../BaseBundle/views/controller/custom.format.engine | 0 4 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Resources/BaseBundle/views/base.format.engine create mode 100644 src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Resources/BaseBundle/views/controller/custom.format.engine diff --git a/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/TemplateFinder.php b/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/TemplateFinder.php index 07f81f5878..2b756a2997 100644 --- a/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/TemplateFinder.php +++ b/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/TemplateFinder.php @@ -97,8 +97,12 @@ class TemplateFinder implements TemplateFinderInterface */ private function findTemplatesInBundle(BundleInterface $bundle) { - $templates = $this->findTemplatesInFolder($bundle->getPath().'/Resources/views'); $name = $bundle->getName(); + $templates = array_merge( + $this->findTemplatesInFolder($bundle->getPath().'/Resources/views'), + $this->findTemplatesInFolder($this->rootDir.'/'.$name.'/views') + ); + $templates = array_unique($templates); foreach ($templates as $i => $template) { $templates[$i] = $template->set('bundle', $name); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/TemplateFinderTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/TemplateFinderTest.php index 59a7d1d920..a417cdae3d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/TemplateFinderTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/TemplateFinderTest.php @@ -46,10 +46,11 @@ class TemplateFinderTest extends TestCase $finder->findAllTemplates() ); - $this->assertCount(6, $templates, '->findAllTemplates() find all templates in the bundles and global folders'); + $this->assertCount(7, $templates, '->findAllTemplates() find all templates in the bundles and global folders'); $this->assertContains('BaseBundle::base.format.engine', $templates); $this->assertContains('BaseBundle::this.is.a.template.format.engine', $templates); $this->assertContains('BaseBundle:controller:base.format.engine', $templates); + $this->assertContains('BaseBundle:controller:custom.format.engine', $templates); $this->assertContains('::this.is.a.template.format.engine', $templates); $this->assertContains('::resource.format.engine', $templates); } diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Resources/BaseBundle/views/base.format.engine b/src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Resources/BaseBundle/views/base.format.engine new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Resources/BaseBundle/views/controller/custom.format.engine b/src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Resources/BaseBundle/views/controller/custom.format.engine new file mode 100644 index 0000000000..e69de29bb2