diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
index fdcd1be7fe..0adf3cb6f8 100644
--- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
@@ -458,7 +458,6 @@ class FrameworkExtension extends Extension
private function registerTemplatingConfiguration(array $config, $ide, ContainerBuilder $container, XmlFileLoader $loader)
{
$loader->load('templating.xml');
- $loader->load('templating_php.xml');
$links = array(
'textmate' => 'txmt://open?url=file://%%f&line=%%l',
@@ -468,12 +467,26 @@ class FrameworkExtension extends Extension
);
$container->setParameter('templating.helper.code.file_link_format', isset($links[$ide]) ? $links[$ide] : $ide);
- $container->setParameter('templating.helper.form.resources', $config['form']['resources']);
$container->setParameter('fragment.renderer.hinclude.global_template', $config['hinclude_default_template']);
- if ($container->getParameter('kernel.debug')) {
- $loader->load('templating_debug.xml');
+ $loader->load('old_assets.xml');
+ // create package definitions and add them to the assets helper
+ $defaultPackage = $this->createTemplatingPackageDefinition($container, $config['assets_base_urls']['http'], $config['assets_base_urls']['ssl'], $config['assets_version'], $config['assets_version_format']);
+ $container->setDefinition('templating.asset.default_package', $defaultPackage);
+ $namedPackages = array();
+ foreach ($config['packages'] as $name => $package) {
+ $namedPackage = $this->createTemplatingPackageDefinition($container, $package['base_urls']['http'], $package['base_urls']['ssl'], $package['version'], $package['version_format'], $name);
+ $container->setDefinition('templating.asset.package.'.$name, $namedPackage);
+ $namedPackages[$name] = new Reference('templating.asset.package.'.$name);
+ }
+
+ $container->getDefinition('templating.helper.assets')->setArguments(array(
+ new Reference('templating.asset.default_package'),
+ $namedPackages,
+ ));
+
+ if ($container->getParameter('kernel.debug')) {
$logger = new Reference('logger', ContainerInterface::IGNORE_ON_INVALID_REFERENCE);
$container->getDefinition('templating.loader.cache')
@@ -482,25 +495,8 @@ class FrameworkExtension extends Extension
$container->getDefinition('templating.loader.chain')
->addTag('monolog.logger', array('channel' => 'templating'))
->addMethodCall('setLogger', array($logger));
-
- $container->setDefinition('templating.engine.php', $container->findDefinition('debug.templating.engine.php'));
- $container->setAlias('debug.templating.engine.php', 'templating.engine.php');
}
- // create package definitions and add them to the assets helper
- $defaultPackage = $this->createPackageDefinition($container, $config['assets_base_urls']['http'], $config['assets_base_urls']['ssl'], $config['assets_version'], $config['assets_version_format']);
- $container->setDefinition('templating.asset.default_package', $defaultPackage);
- $namedPackages = array();
- foreach ($config['packages'] as $name => $package) {
- $namedPackage = $this->createPackageDefinition($container, $package['base_urls']['http'], $package['base_urls']['ssl'], $package['version'], $package['version_format'], $name);
- $container->setDefinition('templating.asset.package.'.$name, $namedPackage);
- $namedPackages[$name] = new Reference('templating.asset.package.'.$name);
- }
- $container->getDefinition('templating.helper.assets')->setArguments(array(
- new Reference('templating.asset.default_package'),
- $namedPackages,
- ));
-
if (!empty($config['loaders'])) {
$loaders = array_map(function ($loader) { return new Reference($loader); }, $config['loaders']);
@@ -530,14 +526,6 @@ class FrameworkExtension extends Extension
$container->findDefinition('templating.locator')->getClass(),
));
- if (in_array('php', $config['engines'], true)) {
- $this->addClassesToCompile(array(
- 'Symfony\\Component\\Templating\\Storage\\FileStorage',
- 'Symfony\\Bundle\\FrameworkBundle\\Templating\\PhpEngine',
- 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Loader\\FilesystemLoader',
- ));
- }
-
$container->setParameter('templating.engines', $config['engines']);
$engines = array_map(function ($engine) { return new Reference('templating.engine.'.$engine); }, $config['engines']);
@@ -550,12 +538,32 @@ class FrameworkExtension extends Extension
}
$container->setAlias('templating', 'templating.engine.delegating');
}
+
+ // configure the PHP engine if needed
+ if (in_array('php', $config['engines'], true)) {
+ $loader->load('templating_php.xml');
+
+ $container->setParameter('templating.helper.form.resources', $config['form']['resources']);
+
+ if ($container->getParameter('kernel.debug')) {
+ $loader->load('templating_debug.xml');
+
+ $container->setDefinition('templating.engine.php', $container->findDefinition('debug.templating.engine.php'));
+ $container->setAlias('debug.templating.engine.php', 'templating.engine.php');
+ }
+
+ $this->addClassesToCompile(array(
+ 'Symfony\\Component\\Templating\\Storage\\FileStorage',
+ 'Symfony\\Bundle\\FrameworkBundle\\Templating\\PhpEngine',
+ 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Loader\\FilesystemLoader',
+ ));
+ }
}
/**
* Returns a definition for an asset package.
*/
- private function createPackageDefinition(ContainerBuilder $container, array $httpUrls, array $sslUrls, $version, $format, $name = null)
+ private function createTemplatingPackageDefinition(ContainerBuilder $container, array $httpUrls, array $sslUrls, $version, $format, $name = null)
{
if (!$httpUrls) {
$package = new DefinitionDecorator('templating.asset.path_package');
diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/old_assets.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/old_assets.xml
new file mode 100644
index 0000000000..90d935906d
--- /dev/null
+++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/old_assets.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ Symfony\Bundle\FrameworkBundle\Templating\Asset\PathPackage
+ Symfony\Component\Templating\Asset\UrlPackage
+ Symfony\Bundle\FrameworkBundle\Templating\Asset\PackageFactory
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating.xml
index 59da78fc41..efec555b87 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating.xml
+++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating.xml
@@ -14,6 +14,7 @@
Symfony\Component\Templating\Loader\CacheLoader
Symfony\Component\Templating\Loader\ChainLoader
Symfony\Bundle\FrameworkBundle\CacheWarmer\TemplateFinder
+ Symfony\Component\Templating\Helper\CoreAssetsHelper
@@ -58,5 +59,15 @@
+
+
+
+
+
+
+
diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml
index e0a9234d02..5b4f8073fe 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml
+++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml
@@ -7,7 +7,6 @@
Symfony\Bundle\FrameworkBundle\Templating\PhpEngine
Symfony\Component\Templating\Helper\SlotsHelper
- Symfony\Component\Templating\Helper\CoreAssetsHelper
Symfony\Bundle\FrameworkBundle\Templating\Helper\ActionsHelper
Symfony\Bundle\FrameworkBundle\Templating\Helper\RouterHelper
Symfony\Bundle\FrameworkBundle\Templating\Helper\RequestHelper
@@ -19,9 +18,6 @@
Symfony\Component\Form\Extension\Templating\TemplatingRendererEngine
Symfony\Component\Form\FormRenderer
Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables
- Symfony\Bundle\FrameworkBundle\Templating\Asset\PathPackage
- Symfony\Component\Templating\Asset\UrlPackage
- Symfony\Bundle\FrameworkBundle\Templating\Asset\PackageFactory
@@ -37,35 +33,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php
index c4bd1d372a..953a9dd9dd 100644
--- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php
+++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php
@@ -46,5 +46,24 @@ class ExtensionPass implements CompilerPassInterface
if ($container->has('request_stack')) {
$container->getDefinition('twig.extension.httpfoundation')->addTag('twig.extension');
}
+
+ if ($container->hasParameter('templating.helper.code.file_link_format')) {
+ $container->getDefinition('twig.extension.code')->replaceArgument(0, $container->getParameter('templating.helper.code.file_link_format'));
+ }
+
+ if ($container->has('templating')) {
+ $container->getDefinition('twig.cache_warmer')->addTag('kernel.cache_warmer');
+
+ if ($container->getParameter('kernel.debug')) {
+ $container->setDefinition('templating.engine.twig', $container->findDefinition('debug.templating.engine.twig'));
+ $container->setAlias('debug.templating.engine.twig', 'templating.engine.twig');
+ }
+ } else {
+ $loader = $container->getDefinition('twig.loader.native_filesystem');
+ $loader->addTag('twig.loader');
+ $loader->setMethodCalls($container->getDefinition('twig.loader.filesystem')->getMethodCalls());
+
+ $container->setDefinition('twig.loader.filesystem', $loader);
+ }
}
}
diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php
index 9883daeded..c9595ff219 100644
--- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php
+++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php
@@ -103,9 +103,6 @@ class TwigExtension extends Extension
if ($container->getParameter('kernel.debug')) {
$loader->load('debug.xml');
-
- $container->setDefinition('templating.engine.twig', $container->findDefinition('debug.templating.engine.twig'));
- $container->setAlias('debug.templating.engine.twig', 'templating.engine.twig');
}
if (isset($config['autoescape_service']) && isset($config['autoescape_service_method'])) {
diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml
index b0a7223287..41f9c2d361 100644
--- a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml
+++ b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml
@@ -47,11 +47,14 @@
-
+
+
+
+
@@ -84,7 +87,7 @@
- %templating.helper.code.file_link_format%
+
%kernel.root_dir%
%kernel.charset%