Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit b291310

Browse filesBrowse files
committed
do not try to register incomplete definitions
1 parent e59ae4d commit b291310
Copy full SHA for b291310

File tree

Expand file treeCollapse file tree

4 files changed

+94
-32
lines changed
Filter options
Expand file treeCollapse file tree

4 files changed

+94
-32
lines changed

‎src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php
+42Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,16 @@ public function load(array $configs, ContainerBuilder $container)
3636
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
3737
$loader->load('twig.xml');
3838

39+
if (class_exists('Symfony\Component\Form\Form')) {
40+
$loader->load('form.xml');
41+
}
42+
43+
if (class_exists('Symfony\Component\Templating\EngineInterface')) {
44+
$loader->load('templating.xml');
45+
}
46+
47+
$this->cleanUpDefinitionsMissingRequiredDependencies($container);
48+
3949
foreach ($configs as $key => $config) {
4050
if (isset($config['globals'])) {
4151
foreach ($config['globals'] as $name => $value) {
@@ -151,4 +161,36 @@ public function getNamespace()
151161
{
152162
return 'http://symfony.com/schema/dic/twig';
153163
}
164+
165+
private function cleanUpDefinitionsMissingRequiredDependencies(ContainerBuilder $container)
166+
{
167+
if (!interface_exists('Symfony\Component\Templating\TemplateReferenceInterface')) {
168+
$container->removeDefinition('twig.controller.exception');
169+
}
170+
171+
if (!class_exists('Symfony\Component\Debug\Exception\FlattenException') && !interface_exists('Symfony\Component\EventDispatcher\EventSubscriberInterface')) {
172+
$container->removeDefinition('twig.exception_listener');
173+
}
174+
175+
if (!class_exists('Symfony\Component\Asset\Packages')) {
176+
$container->removeDefinition('twig.extension.assets');
177+
}
178+
179+
if (!class_exists('Symfony\Component\ExpressionLanguage\Expression')) {
180+
$container->removeDefinition('twig.extension.expression');
181+
}
182+
183+
if (!interface_exists('Symfony\Component\Routing\Generator\UrlGeneratorInterface')) {
184+
$container->removeDefinition('twig.extension.routing');
185+
}
186+
187+
if (!class_exists('Symfony\Component\Translation\TranslatorInterface')) {
188+
$container->removeDefinition('twig.extension.trans');
189+
$container->removeDefinition('twig.translation.extractor');
190+
}
191+
192+
if (!class_exists('Symfony\Component\Yaml\Yaml')) {
193+
$container->removeDefinition('twig.extension.yaml');
194+
}
195+
}
154196
}
+26Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
5+
6+
<parameters>
7+
<parameter key="twig.extension.form.class">Symfony\Bridge\Twig\Extension\FormExtension</parameter>
8+
<parameter key="twig.form.engine.class">Symfony\Bridge\Twig\Form\TwigRendererEngine</parameter>
9+
<parameter key="twig.form.renderer.class">Symfony\Bridge\Twig\Form\TwigRenderer</parameter>
10+
</parameters>
11+
12+
<services>
13+
<service id="twig.extension.form" class="%twig.extension.form.class%" public="false">
14+
<argument type="service" id="twig.form.renderer" />
15+
</service>
16+
17+
<service id="twig.form.engine" class="%twig.form.engine.class%" public="false">
18+
<argument>%twig.form.resources%</argument>
19+
</service>
20+
21+
<service id="twig.form.renderer" class="%twig.form.renderer.class%" public="false">
22+
<argument type="service" id="twig.form.engine" />
23+
<argument type="service" id="security.csrf.token_manager" on-invalid="null" />
24+
</service>
25+
</services>
26+
</container>
+26Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
5+
6+
<parameters>
7+
<parameter key="twig.loader.filesystem.class">Symfony\Bundle\TwigBundle\Loader\FilesystemLoader</parameter>
8+
<parameter key="templating.engine.twig.class">Symfony\Bundle\TwigBundle\TwigEngine</parameter>
9+
</parameters>
10+
11+
<services>
12+
<service id="twig.loader.filesystem" class="%twig.loader.filesystem.class%" public="false">
13+
<argument type="service" id="templating.locator" />
14+
<argument type="service" id="templating.name_parser" />
15+
<tag name="twig.loader"/>
16+
</service>
17+
18+
<service id="twig.loader" alias="twig.loader.filesystem" />
19+
20+
<service id="templating.engine.twig" class="%templating.engine.twig.class%" public="false">
21+
<argument type="service" id="twig" />
22+
<argument type="service" id="templating.name_parser" />
23+
<argument type="service" id="templating.locator" />
24+
</service>
25+
</services>
26+
</container>

‎src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml
-32Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,16 @@
66

77
<parameters>
88
<parameter key="twig.class">Twig_Environment</parameter>
9-
<parameter key="twig.loader.filesystem.class">Symfony\Bundle\TwigBundle\Loader\FilesystemLoader</parameter>
109
<parameter key="twig.loader.chain.class">Twig_Loader_Chain</parameter>
11-
<parameter key="templating.engine.twig.class">Symfony\Bundle\TwigBundle\TwigEngine</parameter>
1210
<parameter key="twig.cache_warmer.class">Symfony\Bundle\TwigBundle\CacheWarmer\TemplateCacheCacheWarmer</parameter>
1311
<parameter key="twig.extension.trans.class">Symfony\Bridge\Twig\Extension\TranslationExtension</parameter>
1412
<parameter key="twig.extension.actions.class">Symfony\Bundle\TwigBundle\Extension\ActionsExtension</parameter>
1513
<parameter key="twig.extension.code.class">Symfony\Bridge\Twig\Extension\CodeExtension</parameter>
1614
<parameter key="twig.extension.routing.class">Symfony\Bridge\Twig\Extension\RoutingExtension</parameter>
1715
<parameter key="twig.extension.yaml.class">Symfony\Bridge\Twig\Extension\YamlExtension</parameter>
18-
<parameter key="twig.extension.form.class">Symfony\Bridge\Twig\Extension\FormExtension</parameter>
1916
<parameter key="twig.extension.httpkernel.class">Symfony\Bridge\Twig\Extension\HttpKernelExtension</parameter>
2017
<parameter key="twig.extension.debug.stopwatch.class">Symfony\Bridge\Twig\Extension\StopwatchExtension</parameter>
2118
<parameter key="twig.extension.expression.class">Symfony\Bridge\Twig\Extension\ExpressionExtension</parameter>
22-
<parameter key="twig.form.engine.class">Symfony\Bridge\Twig\Form\TwigRendererEngine</parameter>
23-
<parameter key="twig.form.renderer.class">Symfony\Bridge\Twig\Form\TwigRenderer</parameter>
2419
<parameter key="twig.translation.extractor.class">Symfony\Bridge\Twig\Translation\TwigExtractor</parameter>
2520
<parameter key="twig.exception_listener.class">Symfony\Component\HttpKernel\EventListener\ExceptionListener</parameter>
2621
<parameter key="twig.controller.exception.class">Symfony\Bundle\TwigBundle\Controller\ExceptionController</parameter>
@@ -55,22 +50,8 @@
5550
<argument type="collection" />
5651
</service>
5752

58-
<service id="twig.loader.filesystem" class="%twig.loader.filesystem.class%" public="false">
59-
<argument type="service" id="templating.locator" />
60-
<argument type="service" id="templating.name_parser" />
61-
<tag name="twig.loader"/>
62-
</service>
63-
6453
<service id="twig.loader.chain" class="%twig.loader.chain.class%" public="false"/>
6554

66-
<service id="twig.loader" alias="twig.loader.filesystem" />
67-
68-
<service id="templating.engine.twig" class="%templating.engine.twig.class%" public="false">
69-
<argument type="service" id="twig" />
70-
<argument type="service" id="templating.name_parser" />
71-
<argument type="service" id="templating.locator" />
72-
</service>
73-
7455
<service id="twig.extension.profiler" class="Symfony\Bridge\Twig\Extension\ProfilerExtension" public="false">
7556
<argument type="service" id="twig.profile" />
7657
<argument type="service" id="debug.stopwatch" on-invalid="null" />
@@ -130,21 +111,8 @@
130111
<argument type="service" id="router.request_context" on-invalid="ignore" />
131112
</service>
132113

133-
<service id="twig.extension.form" class="%twig.extension.form.class%" public="false">
134-
<argument type="service" id="twig.form.renderer" />
135-
</service>
136-
137114
<service id="twig.extension.debug" class="Twig_Extension_Debug" public="false" />
138115

139-
<service id="twig.form.engine" class="%twig.form.engine.class%" public="false">
140-
<argument>%twig.form.resources%</argument>
141-
</service>
142-
143-
<service id="twig.form.renderer" class="%twig.form.renderer.class%" public="false">
144-
<argument type="service" id="twig.form.engine" />
145-
<argument type="service" id="security.csrf.token_manager" on-invalid="null" />
146-
</service>
147-
148116
<service id="twig.translation.extractor" class="%twig.translation.extractor.class%">
149117
<argument type="service" id="twig" />
150118
<tag name="translation.extractor" alias="twig" />

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.