[TwigBundle] fixed usage when Templating is not installed
This commit is contained in:
parent
23294e59ca
commit
6aa98d163d
|
@ -45,7 +45,7 @@ class ExtensionPass implements CompilerPassInterface
|
||||||
if ($container->has('form.extension')) {
|
if ($container->has('form.extension')) {
|
||||||
$container->getDefinition('twig.extension.form')->addTag('twig.extension');
|
$container->getDefinition('twig.extension.form')->addTag('twig.extension');
|
||||||
$reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension');
|
$reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension');
|
||||||
$container->getDefinition('twig.loader.filesystem')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form'));
|
$container->getDefinition('twig.loader.native_filesystem')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($container->has('fragment.handler')) {
|
if ($container->has('fragment.handler')) {
|
||||||
|
@ -88,11 +88,13 @@ class ExtensionPass implements CompilerPassInterface
|
||||||
$container->getDefinition('twig.extension.debug')->addTag('twig.extension');
|
$container->getDefinition('twig.extension.debug')->addTag('twig.extension');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$container->has('templating')) {
|
$twigLoader = $container->getDefinition('twig.loader.native_filesystem');
|
||||||
$loader = $container->getDefinition('twig.loader.native_filesystem');
|
if ($container->has('templating')) {
|
||||||
$loader->addTag('twig.loader');
|
$loader = $container->getDefinition('twig.loader.filesystem');
|
||||||
$loader->setMethodCalls($container->getDefinition('twig.loader.filesystem')->getMethodCalls());
|
$loader->setMethodCalls($twigLoader->getMethodCalls());
|
||||||
|
|
||||||
|
$twigLoader->clearTag('twig.loader');
|
||||||
|
} else {
|
||||||
$container->setAlias('twig.loader.filesystem', new Alias('twig.loader.native_filesystem', false));
|
$container->setAlias('twig.loader.filesystem', new Alias('twig.loader.native_filesystem', false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ class TwigExtension extends Extension
|
||||||
$envConfiguratorDefinition->replaceArgument(4, $config['number_format']['decimal_point']);
|
$envConfiguratorDefinition->replaceArgument(4, $config['number_format']['decimal_point']);
|
||||||
$envConfiguratorDefinition->replaceArgument(5, $config['number_format']['thousands_separator']);
|
$envConfiguratorDefinition->replaceArgument(5, $config['number_format']['thousands_separator']);
|
||||||
|
|
||||||
$twigFilesystemLoaderDefinition = $container->getDefinition('twig.loader.filesystem');
|
$twigFilesystemLoaderDefinition = $container->getDefinition('twig.loader.native_filesystem');
|
||||||
|
|
||||||
// register user-configured paths
|
// register user-configured paths
|
||||||
foreach ($config['paths'] as $path => $namespace) {
|
foreach ($config['paths'] as $path => $namespace) {
|
||||||
|
|
|
@ -10,8 +10,6 @@
|
||||||
<tag name="twig.loader"/>
|
<tag name="twig.loader"/>
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service id="twig.loader" alias="twig.loader.filesystem" />
|
|
||||||
|
|
||||||
<service id="templating.engine.twig" class="%templating.engine.twig.class%" public="false">
|
<service id="templating.engine.twig" class="%templating.engine.twig.class%" public="false">
|
||||||
<argument type="service" id="twig" />
|
<argument type="service" id="twig" />
|
||||||
<argument type="service" id="templating.name_parser" />
|
<argument type="service" id="templating.name_parser" />
|
||||||
|
|
|
@ -53,6 +53,7 @@
|
||||||
|
|
||||||
<service id="twig.loader.native_filesystem" class="Twig_Loader_Filesystem" public="false">
|
<service id="twig.loader.native_filesystem" class="Twig_Loader_Filesystem" public="false">
|
||||||
<argument type="collection" />
|
<argument type="collection" />
|
||||||
|
<tag name="twig.loader"/>
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service id="twig.loader.chain" class="%twig.loader.chain.class%" public="false"/>
|
<service id="twig.loader.chain" class="%twig.loader.chain.class%" public="false"/>
|
||||||
|
|
|
@ -187,7 +187,7 @@ class TwigExtensionTest extends TestCase
|
||||||
$this->loadFromFile($container, 'extra', $format);
|
$this->loadFromFile($container, 'extra', $format);
|
||||||
$this->compileContainer($container);
|
$this->compileContainer($container);
|
||||||
|
|
||||||
$def = $container->getDefinition('twig.loader.filesystem');
|
$def = $container->getDefinition('twig.loader.native_filesystem');
|
||||||
$paths = array();
|
$paths = array();
|
||||||
foreach ($def->getMethodCalls() as $call) {
|
foreach ($def->getMethodCalls() as $call) {
|
||||||
if ('addPath' === $call[0] && false === strpos($call[1][0], 'Form')) {
|
if ('addPath' === $call[0] && false === strpos($call[1][0], 'Form')) {
|
||||||
|
|
Reference in New Issue