From 5c7d42e72c3afc2b66ae8ffcf91d2d54eeb2a817 Mon Sep 17 00:00:00 2001 From: Jules Pietri Date: Sat, 24 Jun 2017 23:07:30 +0200 Subject: [PATCH 1/2] Added auto namespacing for new templates directory structure --- .../TwigBundle/DependencyInjection/TwigExtension.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php index b3cde40b6f14e..53d9a8853c667 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php @@ -128,6 +128,17 @@ public function load(array $configs, ContainerBuilder $container) $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($dir)); } + if ($container->fileExists($dir = $container->getParameter('kernel.project_dir').'/templates', false)) { + $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($dir)); + } + + if ($container->fileExists($dir = $container->getParameter('kernel.project_dir').'/templates/bundles', false)) { + foreach (glob($dir.'/*', GLOB_ONLYDIR) as $path) { + $parts = explode(DIRECTORY_SEPARATOR, $path); + $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($path, end($parts))); + } + } + if (!empty($config['globals'])) { $def = $container->getDefinition('twig'); foreach ($config['globals'] as $key => $global) { From 851aee62eb905c8d1390a12f7f3a56fce5b8abe8 Mon Sep 17 00:00:00 2001 From: HeahDude Date: Thu, 27 Jul 2017 11:49:52 +0200 Subject: [PATCH 2/2] fixup --- .../DependencyInjection/Configuration.php | 3 +++ .../DependencyInjection/TwigExtension.php | 13 +++---------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Configuration.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Configuration.php index 4880d2534d8f5..1c94bfa38b181 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Configuration.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Configuration.php @@ -158,6 +158,9 @@ private function addTwigOptions(ArrayNodeDefinition $rootNode) ->end() ->prototype('variable')->end() ->end() + ->scalarNode('default_path') + ->defaultValue('%kernel.project_dir%/templates') + ->end() ->end() ; } diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php index 53d9a8853c667..30fe4d4f88dfa 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php @@ -122,22 +122,15 @@ public function load(array $configs, ContainerBuilder $container) foreach ($bundle['paths'] as $path) { $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($path, $namespace)); } - } - if ($container->fileExists($dir = $container->getParameter('kernel.root_dir').'/Resources/views', false)) { - $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($dir)); + $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($config['default_path'].'/bundles/'.$namespace, $namespace)); } - if ($container->fileExists($dir = $container->getParameter('kernel.project_dir').'/templates', false)) { + if ($container->fileExists($dir = $container->getParameter('kernel.root_dir').'/Resources/views', false)) { $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($dir)); } - if ($container->fileExists($dir = $container->getParameter('kernel.project_dir').'/templates/bundles', false)) { - foreach (glob($dir.'/*', GLOB_ONLYDIR) as $path) { - $parts = explode(DIRECTORY_SEPARATOR, $path); - $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($path, end($parts))); - } - } + $twigFilesystemLoaderDefinition->addMethodCall('addPath', array($config['default_path'])); if (!empty($config['globals'])) { $def = $container->getDefinition('twig');