From 431d593d59a4f7c58762fbf79be5462b04966777 Mon Sep 17 00:00:00 2001 From: "marc.weistroff" Date: Tue, 27 Nov 2012 14:12:14 -0500 Subject: [PATCH] [TwigBundle] Renames twig.loader to twig.loader.filesystem. In the previous form of twig's service definitions, it was impossible to use a chain loader correctly because the TwigBundle was registering paths on the twig.loader service. This patch fixes that by creating a twig.loader.filesystem definition and an alias twig.loader that points to twig.loader.filesystem by default. --- .../DependencyInjection/TwigExtension.php | 18 +++++++++--------- .../TwigBundle/Resources/config/twig.xml | 6 ++++-- .../DependencyInjection/TwigExtensionTest.php | 2 +- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php index e13fe086ab..5e056a85f4 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php @@ -58,33 +58,33 @@ class TwigExtension extends Extension $container->setParameter('twig.form.resources', $config['form']['resources']); $reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension'); - $container->getDefinition('twig.loader')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form')); + $container->getDefinition('twig.loader.filesystem')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form')); - $twigLoaderDefinition = $container->getDefinition('twig.loader'); + $twigFilesystemLoaderDefinition = $container->getDefinition('twig.loader.filesystem'); // register user-configured paths foreach ($config['paths'] as $path => $namespace) { if (!$namespace) { - $twigLoaderDefinition->addMethodCall('addPath', array($path)); + $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($path)); } else { - $twigLoaderDefinition->addMethodCall('addPath', array($path, $namespace)); + $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($path, $namespace)); } } // register bundles as Twig namespaces foreach ($container->getParameter('kernel.bundles') as $bundle => $class) { if (is_dir($dir = $container->getParameter('kernel.root_dir').'/Resources/'.$bundle.'/views')) { - $this->addTwigPath($twigLoaderDefinition, $dir, $bundle); + $this->addTwigPath($twigFilesystemLoaderDefinition, $dir, $bundle); } $reflection = new \ReflectionClass($class); if (is_dir($dir = dirname($reflection->getFilename()).'/Resources/views')) { - $this->addTwigPath($twigLoaderDefinition, $dir, $bundle); + $this->addTwigPath($twigFilesystemLoaderDefinition, $dir, $bundle); } } if (is_dir($dir = $container->getParameter('kernel.root_dir').'/Resources/views')) { - $twigLoaderDefinition->addMethodCall('addPath', array($dir)); + $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($dir)); } if (!empty($config['globals'])) { @@ -129,13 +129,13 @@ class TwigExtension extends Extension )); } - private function addTwigPath($twigLoaderDefinition, $dir, $bundle) + private function addTwigPath($twigFilesystemLoaderDefinition, $dir, $bundle) { $name = $bundle; if ('Bundle' === substr($name, -6)) { $name = substr($name, 0, -6); } - $twigLoaderDefinition->addMethodCall('addPath', array($dir, $name)); + $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($dir, $name)); } /** diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml index 8f1210aeac..35016810ff 100644 --- a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml +++ b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml @@ -6,7 +6,7 @@ Twig_Environment - Symfony\Bundle\TwigBundle\Loader\FilesystemLoader + Symfony\Bundle\TwigBundle\Loader\FilesystemLoader Symfony\Bundle\TwigBundle\TwigEngine Symfony\Bundle\TwigBundle\CacheWarmer\TemplateCacheCacheWarmer Symfony\Bridge\Twig\Extension\TranslationExtension @@ -38,11 +38,13 @@ - + + + diff --git a/src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php b/src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php index 5efca55714..f10de14037 100644 --- a/src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php +++ b/src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php @@ -121,7 +121,7 @@ class TwigExtensionTest extends TestCase $this->loadFromFile($container, 'full', $format); $this->compileContainer($container); - $def = $container->getDefinition('twig.loader'); + $def = $container->getDefinition('twig.loader.filesystem'); $paths = array(); foreach ($def->getMethodCalls() as $call) { if ('addPath' === $call[0]) {