From 6b3521e598103ce2bf7ab3d5738dd86fd09b65fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Simon?= Date: Mon, 4 Mar 2013 17:38:33 +0100 Subject: [PATCH 1/5] [TwigBundle] added service check for extension loading --- .../Compiler/FormExtensionPass.php | 27 ++++++++++++++ .../Compiler/TransExtensionPass.php | 27 ++++++++++++++ .../DependencyInjection/TwigExtension.php | 3 -- .../TwigBundle/Resources/config/form.xml | 28 +++++++++++++++ .../TwigBundle/Resources/config/trans.xml | 23 ++++++++++++ .../TwigBundle/Resources/config/twig.xml | 35 ------------------- src/Symfony/Bundle/TwigBundle/TwigBundle.php | 4 +++ 7 files changed, 109 insertions(+), 38 deletions(-) create mode 100644 src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/FormExtensionPass.php create mode 100644 src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/TransExtensionPass.php create mode 100644 src/Symfony/Bundle/TwigBundle/Resources/config/form.xml create mode 100644 src/Symfony/Bundle/TwigBundle/Resources/config/trans.xml diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/FormExtensionPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/FormExtensionPass.php new file mode 100644 index 0000000000000..9177c92e3d3c1 --- /dev/null +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/FormExtensionPass.php @@ -0,0 +1,27 @@ + + */ +class FormExtensionPass implements CompilerPassInterface +{ + public function process(ContainerBuilder $container) + { + if (false === $container->has('form.extension')) { + return; + } + + $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../../Resources/config')); + $loader->load('form.xml'); + + $reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension'); + $container->getDefinition('twig.loader')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form')); + } +} diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/TransExtensionPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/TransExtensionPass.php new file mode 100644 index 0000000000000..aed9128ba2cf1 --- /dev/null +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/TransExtensionPass.php @@ -0,0 +1,27 @@ + + */ +class TransExtensionPass implements CompilerPassInterface +{ + public function process(ContainerBuilder $container) + { + if (false === $container->has('translator')) { + return; + } + + $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../../Resources/config')); + $loader->load('trans.xml'); + + $reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension'); + $container->getDefinition('twig.loader')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form')); + } +} diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php index 5e056a85f4841..475b18e5225c7 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php @@ -57,9 +57,6 @@ public function load(array $configs, ContainerBuilder $container) $container->setParameter('twig.form.resources', $config['form']['resources']); - $reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension'); - $container->getDefinition('twig.loader.filesystem')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form')); - $twigFilesystemLoaderDefinition = $container->getDefinition('twig.loader.filesystem'); // register user-configured paths diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/form.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/form.xml new file mode 100644 index 0000000000000..548540dba8948 --- /dev/null +++ b/src/Symfony/Bundle/TwigBundle/Resources/config/form.xml @@ -0,0 +1,28 @@ + + + + + + Symfony\Bridge\Twig\Form\TwigRendererEngine + Symfony\Bridge\Twig\Form\TwigRenderer + Symfony\Bridge\Twig\Extension\FormExtension + + + + + %twig.form.resources% + + + + + + + + + + + + + diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/trans.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/trans.xml new file mode 100644 index 0000000000000..fee6983003dec --- /dev/null +++ b/src/Symfony/Bundle/TwigBundle/Resources/config/trans.xml @@ -0,0 +1,23 @@ + + + + + + Symfony\Bridge\Twig\Extension\TranslationExtension + Symfony\Bridge\Twig\Translation\TwigExtractor + + + + + + + + + + + + + + diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml index 6dbc001c0b8fe..b41d304452cf9 100644 --- a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml +++ b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml @@ -10,17 +10,11 @@ Twig_Loader_Chain Symfony\Bundle\TwigBundle\TwigEngine Symfony\Bundle\TwigBundle\CacheWarmer\TemplateCacheCacheWarmer - Symfony\Bridge\Twig\Extension\TranslationExtension Symfony\Bundle\TwigBundle\Extension\AssetsExtension Symfony\Bundle\TwigBundle\Extension\ActionsExtension Symfony\Bridge\Twig\Extension\CodeExtension Symfony\Bridge\Twig\Extension\RoutingExtension Symfony\Bridge\Twig\Extension\YamlExtension - Symfony\Bridge\Twig\Extension\FormExtension - Symfony\Bridge\Twig\Extension\HttpKernelExtension - Symfony\Bridge\Twig\Form\TwigRendererEngine - Symfony\Bridge\Twig\Form\TwigRenderer - Symfony\Bridge\Twig\Translation\TwigExtractor Symfony\Component\HttpKernel\EventListener\ExceptionListener Symfony\Bundle\TwigBundle\Controller\ExceptionController @@ -57,11 +51,6 @@ - - - - - @@ -88,30 +77,6 @@ - - - - - - - - - - - - %twig.form.resources% - - - - - - - - - - - - diff --git a/src/Symfony/Bundle/TwigBundle/TwigBundle.php b/src/Symfony/Bundle/TwigBundle/TwigBundle.php index 88a172caab0b0..3657473258529 100644 --- a/src/Symfony/Bundle/TwigBundle/TwigBundle.php +++ b/src/Symfony/Bundle/TwigBundle/TwigBundle.php @@ -16,6 +16,8 @@ use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\TwigEnvironmentPass; use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\TwigLoaderPass; use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\ExceptionListenerPass; +use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\FormExtensionPass; +use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\TransExtensionPass; /** * Bundle. @@ -28,6 +30,8 @@ public function build(ContainerBuilder $container) { parent::build($container); + $container->addCompilerPass(new FormExtensionPass()); + $container->addCompilerPass(new TransExtensionPass()); $container->addCompilerPass(new TwigEnvironmentPass()); $container->addCompilerPass(new TwigLoaderPass()); $container->addCompilerPass(new ExceptionListenerPass()); From 648bf0c40907da2d8301986cf52177f11df9a6de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Simon?= Date: Mon, 4 Mar 2013 18:17:05 +0100 Subject: [PATCH 2/5] [TwigBundle] changed conditional extensions registration strategy --- .../Compiler/ExtensionsPass.php | 23 +++++++++++++++ .../Compiler/FormExtensionPass.php | 27 ------------------ .../Compiler/TransExtensionPass.php | 27 ------------------ .../TwigBundle/Resources/config/form.xml | 28 ------------------- .../TwigBundle/Resources/config/trans.xml | 23 --------------- .../TwigBundle/Resources/config/twig.xml | 27 ++++++++++++++++++ src/Symfony/Bundle/TwigBundle/TwigBundle.php | 6 ++-- 7 files changed, 52 insertions(+), 109 deletions(-) create mode 100644 src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionsPass.php delete mode 100644 src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/FormExtensionPass.php delete mode 100644 src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/TransExtensionPass.php delete mode 100644 src/Symfony/Bundle/TwigBundle/Resources/config/form.xml delete mode 100644 src/Symfony/Bundle/TwigBundle/Resources/config/trans.xml diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionsPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionsPass.php new file mode 100644 index 0000000000000..38b5fcebb8b38 --- /dev/null +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionsPass.php @@ -0,0 +1,23 @@ + + */ +class ExtensionsPass implements CompilerPassInterface +{ + public function process(ContainerBuilder $container) + { + if ($container->has('form.extension')) { + $container->getDefinition('twig.extension.form')->addTag('twig.extension'); + } + + if (false === $container->has('translator')) { + $container->getDefinition('twig.extension.trans')->addTag('twig.extension'); + } + } +} diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/FormExtensionPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/FormExtensionPass.php deleted file mode 100644 index 9177c92e3d3c1..0000000000000 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/FormExtensionPass.php +++ /dev/null @@ -1,27 +0,0 @@ - - */ -class FormExtensionPass implements CompilerPassInterface -{ - public function process(ContainerBuilder $container) - { - if (false === $container->has('form.extension')) { - return; - } - - $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../../Resources/config')); - $loader->load('form.xml'); - - $reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension'); - $container->getDefinition('twig.loader')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form')); - } -} diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/TransExtensionPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/TransExtensionPass.php deleted file mode 100644 index aed9128ba2cf1..0000000000000 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/TransExtensionPass.php +++ /dev/null @@ -1,27 +0,0 @@ - - */ -class TransExtensionPass implements CompilerPassInterface -{ - public function process(ContainerBuilder $container) - { - if (false === $container->has('translator')) { - return; - } - - $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../../Resources/config')); - $loader->load('trans.xml'); - - $reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension'); - $container->getDefinition('twig.loader')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form')); - } -} diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/form.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/form.xml deleted file mode 100644 index 548540dba8948..0000000000000 --- a/src/Symfony/Bundle/TwigBundle/Resources/config/form.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - Symfony\Bridge\Twig\Form\TwigRendererEngine - Symfony\Bridge\Twig\Form\TwigRenderer - Symfony\Bridge\Twig\Extension\FormExtension - - - - - %twig.form.resources% - - - - - - - - - - - - - diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/trans.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/trans.xml deleted file mode 100644 index fee6983003dec..0000000000000 --- a/src/Symfony/Bundle/TwigBundle/Resources/config/trans.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - Symfony\Bridge\Twig\Extension\TranslationExtension - Symfony\Bridge\Twig\Translation\TwigExtractor - - - - - - - - - - - - - - diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml index b41d304452cf9..fd987d796f5b0 100644 --- a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml +++ b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml @@ -10,11 +10,16 @@ Twig_Loader_Chain Symfony\Bundle\TwigBundle\TwigEngine Symfony\Bundle\TwigBundle\CacheWarmer\TemplateCacheCacheWarmer + Symfony\Bridge\Twig\Extension\TranslationExtension Symfony\Bundle\TwigBundle\Extension\AssetsExtension Symfony\Bundle\TwigBundle\Extension\ActionsExtension Symfony\Bridge\Twig\Extension\CodeExtension Symfony\Bridge\Twig\Extension\RoutingExtension Symfony\Bridge\Twig\Extension\YamlExtension + Symfony\Bridge\Twig\Extension\FormExtension + Symfony\Bridge\Twig\Form\TwigRendererEngine + Symfony\Bridge\Twig\Form\TwigRenderer + Symfony\Bridge\Twig\Translation\TwigExtractor Symfony\Component\HttpKernel\EventListener\ExceptionListener Symfony\Bundle\TwigBundle\Controller\ExceptionController @@ -51,6 +56,10 @@ + + + + @@ -77,6 +86,24 @@ + + + + + + %twig.form.resources% + + + + + + + + + + + + diff --git a/src/Symfony/Bundle/TwigBundle/TwigBundle.php b/src/Symfony/Bundle/TwigBundle/TwigBundle.php index 3657473258529..b6b11a5fdc5fd 100644 --- a/src/Symfony/Bundle/TwigBundle/TwigBundle.php +++ b/src/Symfony/Bundle/TwigBundle/TwigBundle.php @@ -16,8 +16,7 @@ use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\TwigEnvironmentPass; use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\TwigLoaderPass; use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\ExceptionListenerPass; -use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\FormExtensionPass; -use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\TransExtensionPass; +use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\ExtensionsPass; /** * Bundle. @@ -30,8 +29,7 @@ public function build(ContainerBuilder $container) { parent::build($container); - $container->addCompilerPass(new FormExtensionPass()); - $container->addCompilerPass(new TransExtensionPass()); + $container->addCompilerPass(new ExtensionsPass()); $container->addCompilerPass(new TwigEnvironmentPass()); $container->addCompilerPass(new TwigLoaderPass()); $container->addCompilerPass(new ExceptionListenerPass()); From cdcce194438983c270cdf9d4e9931c729e741032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Simon?= Date: Tue, 5 Mar 2013 09:24:29 +0100 Subject: [PATCH 3/5] [TwigBundle] renamed compiler pass --- .../Compiler/{ExtensionsPass.php => ExtensionPass.php} | 2 +- src/Symfony/Bundle/TwigBundle/TwigBundle.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/{ExtensionsPass.php => ExtensionPass.php} (92%) diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionsPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php similarity index 92% rename from src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionsPass.php rename to src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php index 38b5fcebb8b38..e16da9ae9f5e4 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionsPass.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php @@ -8,7 +8,7 @@ /** * @author Jean-François Simon */ -class ExtensionsPass implements CompilerPassInterface +class ExtensionPass implements CompilerPassInterface { public function process(ContainerBuilder $container) { diff --git a/src/Symfony/Bundle/TwigBundle/TwigBundle.php b/src/Symfony/Bundle/TwigBundle/TwigBundle.php index b6b11a5fdc5fd..7b4a2053f0f16 100644 --- a/src/Symfony/Bundle/TwigBundle/TwigBundle.php +++ b/src/Symfony/Bundle/TwigBundle/TwigBundle.php @@ -16,7 +16,7 @@ use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\TwigEnvironmentPass; use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\TwigLoaderPass; use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\ExceptionListenerPass; -use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\ExtensionsPass; +use Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\ExtensionPass; /** * Bundle. @@ -29,7 +29,7 @@ public function build(ContainerBuilder $container) { parent::build($container); - $container->addCompilerPass(new ExtensionsPass()); + $container->addCompilerPass(new ExtensionPass()); $container->addCompilerPass(new TwigEnvironmentPass()); $container->addCompilerPass(new TwigLoaderPass()); $container->addCompilerPass(new ExceptionListenerPass()); From 77c15d491e44fdd8eb73ccac21ea6a25b21a111e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Simon?= Date: Wed, 13 Mar 2013 09:15:46 +0100 Subject: [PATCH 4/5] [TwigBundle] added missing code --- .../DependencyInjection/Compiler/ExtensionPass.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php index e16da9ae9f5e4..a775b10fb68b9 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php @@ -1,5 +1,14 @@ + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + namespace Symfony\Bundle\TwigBundle\DependencyInjection\Compiler; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; @@ -14,6 +23,8 @@ public function process(ContainerBuilder $container) { if ($container->has('form.extension')) { $container->getDefinition('twig.extension.form')->addTag('twig.extension'); + $reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension'); + $container->getDefinition('twig.loader')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form')); } if (false === $container->has('translator')) { From 0dbcae55bb1af77d939267890ac30ff5dbe1e0ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Simon?= Date: Thu, 14 Mar 2013 12:07:44 +0100 Subject: [PATCH 5/5] fixed rebase error --- src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml index fd987d796f5b0..5dbeef7e2fc8e 100644 --- a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml +++ b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml @@ -17,6 +17,7 @@ Symfony\Bridge\Twig\Extension\RoutingExtension Symfony\Bridge\Twig\Extension\YamlExtension Symfony\Bridge\Twig\Extension\FormExtension + Symfony\Bridge\Twig\Extension\HttpKernelExtension Symfony\Bridge\Twig\Form\TwigRendererEngine Symfony\Bridge\Twig\Form\TwigRenderer Symfony\Bridge\Twig\Translation\TwigExtractor @@ -86,6 +87,12 @@ + + + + + +