10000 [Twig] Move configuration to PHP · symfony/symfony@af79efe · GitHub
[go: up one dir, main page]

Skip to content

Commit af79efe

Browse files
committed
[Twig] Move configuration to PHP
1 parent 4984ce1 commit af79efe

File tree

9 files changed

+221
-223
lines changed

9 files changed

+221
-223
lines changed

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
use Symfony\Component\Config\Resource\FileExistenceResource;
1616
use Symfony\Component\Console\Application;
1717
use Symfony\Component\DependencyInjection\ContainerBuilder;
18-
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
18+
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
1919
use Symfony\Component\DependencyInjection\Reference;
2020
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
2121
use Symfony\Component\Mailer\Mailer;
@@ -34,19 +34,19 @@ class TwigExtension extends Extension
3434
{
3535
public function load(array $configs, ContainerBuilder $container)
3636
{
37-
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
38-
$loader->load('twig.xml');
37+
$loader = new PhpFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
38+
$loader->load('twig.php');
3939

4040
if (class_exists('Symfony\Component\Form\Form')) {
41-
$loader->load('form.xml');
41+
$loader->load('form.php');
4242
}
4343

4444
if (class_exists(Application::class)) {
45-
$loader->load('console.xml');
45+
$loader->load('console.php');
4646
}
4747

4848
if (class_exists(Mailer::class)) {
49-
$loader->load('mailer.xml');
49+
$loader->load('mailer.php');
5050
}
5151

5252
if (!class_exists(Translator::class)) {
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
4+
5+
use Symfony\Bridge\Twig\Command\DebugCommand;
6+
use Symfony\Bundle\TwigBundle\Command\LintCommand;
7+
8+
return static function (ContainerConfigurator $container) {
9+
$container->services()
10+
->set('twig.command.debug', DebugCommand::class)
11+
->args([
12+
service('twig'),
13+
param('kernel.project_dir'),
14+
param('kernel.bundles_metadata'),
15+
param('twig.default_path'), 57AE
16+
service('debug.file_link_formatter')->nullOnInvalid(),
17+
])
18+
->tag('console.command', ['command' => 'debug:twig'])
19+
20+
->set('twig.command.lint', LintCommand::class)
21+
->args([service('twig')])
22+
->tag('console.command', ['command' => 'lint:twig'])
23+
;
24+
};

src/Symfony/Bundle/TwigBundle/Resources/config/console.xml

Lines changed: 0 additions & 24 deletions
This file was deleted.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
4+
5+
use Symfony\Bridge\Twig\Extension\FormExtension;
6+
use Symfony\Bridge\Twig\Form\TwigRendererEngine;
7+
use Symfony\Component\Form\FormRenderer;
8+
9+
return static function (ContainerConfigurator $container) {
10+
$container->services()
11+
->set('twig.extension.form', FormExtension::class)
12+
13+
->set('twig.form.engine', TwigRendererEngine::class)
14+
->args([param('twig.form.resources'), service('twig')])
15+
16+
->set('twig.form.renderer', FormRenderer::class)
17+
->args([service('twig.form.engine'), service('security.csrf.token_manager')->nullOnInvalid()])
18+
->tag('twig.runtime')
19+
;
20+
};

src/Symfony/Bundle/TwigBundle/Resources/config/form.xml

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
4+
5+
use Symfony\Bridge\Twig\Mime\BodyRenderer;
6+
use Symfony\Component\Mailer\EventListener\MessageListener;
7+
8+
return static function (ContainerConfigurator $container) {
9+
$container->services()
10+
->set('twig.mailer.message_listener', MessageListener::class)
11+
->args([null, service('twig.mime_body_renderer')])
12+
->tag('kernel.event_subscriber')
13+
14+
->set('twig.mime_body_renderer', BodyRenderer::class)
15+
->args([service('twig')])
16+
;
17+
};

src/Symfony/Bundle/TwigBundle/Resources/config/mailer.xml

Lines changed: 0 additions & 18 deletions
This file was deleted.
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
<?php
2+
3+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
4+
5+
use Psr\Container\ContainerInterface;
6+
use Symfony\Bridge\Twig\AppVariable;
7+
use Symfony\Bridge\Twig\DataCollector\TwigDataCollector;
8+
use Symfony\Bridge\Twig\ErrorRenderer\TwigErrorRenderer;
9+
use Symfony\Bridge\Twig\Extension\AssetExtension;
10+
use Symfony\Bridge\Twig\Extension\CodeExtension;
11+
use Symfony\Bridge\Twig\Extension\ExpressionExtension;
12+
use Symfony\Bridge\Twig\Extension\HttpFoundationExtension;
13+
use Symfony\Bridge\Twig\Extension\HttpKernelExtension;
14+
use Symfony\Bridge\Twig\Extension\HttpKernelRuntime;
15+
use Symfony\Bridge\Twig\Extension\ProfilerExtension;
16+
use Symfony\Bridge\Twig\Extension\RoutingExtension;
17+
use Symfony\Bridge\Twig\Extension\StopwatchExtension;
18+
use Symfony\Bridge\Twig\Extension\TranslationExtension;
19+
use Symfony\Bridge\Twig\Extension\WebLinkExtension;
20+
use Symfony\Bridge\Twig\Extension\WorkflowExtension;
21+
use Symfony\Bridge\Twig\Extension\YamlExtension;
22+
use Symfony\Bridge\Twig\Translation\TwigExtractor;
23+
use Symfony\Bundle\TwigBundle\CacheWarmer\TemplateCacheWarmer;
24+
use Symfony\Bundle\TwigBundle\DependencyInjection\Configurator\EnvironmentConfigurator;
25+
use Symfony\Bundle\TwigBundle\TemplateIterator;
26+
use Twig\Cache\FilesystemCache;
27+
use Twig\Environment;
28+
use Twig\Extension\CoreExtension;
29+
use Twig\Extension\DebugExtension;
30+
use Twig\Extension\EscaperExtension;
31+
use Twig\Extension\OptimizerExtension;
32+
use Twig\Extension\StagingExtension;
33+
use Twig\ExtensionSet;
34+
use Twig\Loader\ChainLoader;
35+
use Twig\Loader\FilesystemLoader;
36+
use Twig\Profiler\Profile;
37+
use Twig\RuntimeLoader\ContainerRuntimeLoader;
38+
use Twig\Template;
39+
use Twig\TemplateWrapper;
40+
41+
return static function (ContainerConfigurator $container) {
42+
$container->services()
43+
->set('twig', Environment::class)
44+
->public()
45+
->args([service('twig.loader'), abstract_arg('Twig options')])
46+
->call('addGlobal', ['app', service('twig.app_variable')])
47+
->call('addRuntimeLoader', [service('twig.runtime_loader')])
48+
->configurator([service('twig.configurator.environment'), 'configure'])
49+
->tag('container.preload', ['class' => FilesystemCache::class])
50+
->tag('container.preload', ['class' => CoreExtension::class])
51+
->tag('container.preload', ['class' => EscaperExtension::class])
52+
->tag('container.preload', ['class' => OptimizerExtension::class])
53+
->tag('container.preload', ['class' => StagingExtension::class])
54+
->tag('container.preload', ['class' => ExtensionSet::class])
55+
->tag('container.preload', ['class' => Template::class])
56+
->tag('container.preload', ['class' => TemplateWrapper::class])
57+
58+
->alias('Twig_Environment', 'twig')
59+
->alias(Environment::class, 'twig')
60+
61+
->set('twig.app_variable', AppVariable::class)
62+
->call('setEnvironment', [param('kernel.environment')])
63+
->call('setDebug', [param('kernel.debug')])
64+
->call('setTokenStorage', [service('security.token_storage')->ignoreOnInvalid()])
65+
->call('setRequestStack', [service('request_stack')->ignoreOnInvalid()])
66+
67+
->set('twig.template_iterator', TemplateIterator::class)
68+
->args([service('kernel'), abstract_arg('Twig paths'), param('twig.default_path')])
69+
70+
->set('twig.template_cache_warmer', TemplateCacheWarmer::class)
71+
->args([service(ContainerInterface::class), service('twig.template_iterator')])
72+
->tag('kernel.cache_warmer')
73+
->tag('container.service_subscriber', ['id' => 'twig'])
74+
75+
->set('twig.loader.native_filesystem', FilesystemLoader::class)
76+
->args([[], param('kernel.project_dir')])
77+
->tag('twig.loader')
78+
79+
->set('twig.loader.chain', ChainLoader::class)
80+
81+
->set('twig.extension.profiler', ProfilerExtension::class)
82+
->args([service('twig.profile'), service('debug.stopwatch')->ignoreOnInvalid()])
83+
84+
->set('twig.profile', Profile::class)
85+
86+
->set('data_collector.twig', TwigDataCollector::class)
87+
->args([service('twig.profile'), service('twig')])
88+
->tag('data_collector', ['template' => '@WebProfiler/Collector/twig.html.twig', 'id' => 'twig', 'priority' => 257])
89+
90+
->set('twig.extension.trans', TranslationExtension::class)
91+
->args([service('translation')->nullOnInvalid()])
92+
->tag('twig.extension')
93+
94+
->set('twig.extension.assets', AssetExtension::class)
95+
->args([service('assets.package')])
96+
97+
->set('twig.extension.code', CodeExtension::class)
98+
->args([service('debug.file_link_formatter')->ignoreOnInvalid(), param('kernel.project_dir'), param('kernel.charset')])
99+
->tag('twig.extension')
100+
101+
->set('twig.extension.routing', RoutingExtension::class)
102+
->args([service('router')])
103+
10 F438 4+
->set('twig.extension.yaml', YamlExtension::class)
105+
106+
->set('twig.extension.debug.stopwatch', StopwatchExtension::class)
107+
->args([service('debug.stopwatch')->ignoreOnInvalid(), param('kernel.debug')])
108+
109+
->set('twig.extension.expression', ExpressionExtension::class)
110+
111+
->set('twig.extension.httpkernel', HttpKernelExtension::class)
112+
113+
->set('twig.runtime.httpkernel', HttpKernelRuntime::class)
114+
->args([service('fragment.handler')])
115+
116+
->set('twig.extension.httpfoundation', HttpFoundationExtension::class)
117+
->args([service('url_helper')])
118+
119+
->set('twig.extension.debug', DebugExtension::class)
120+
121+
->set('twig.extension.weblink', WebLinkExtension::class)
122+
->args([service('request_stack')])
123+
124+
->set('twig.translation.extractor', TwigExtractor::class)
125+
->args([service('twig')])
126+
->tag('translation.extractor', ['alias' => 'twig'])
127+
128+
->set('workflow.twig_extension', WorkflowExtension::class)
129+
->args([service('workflow.registry')])
130+
131+
->set('twig.configurator.environment', EnvironmentConfigurator::class)
132+
->args([
133+
abstract_arg('date format, set in TwigExtension'),
134+
abstract_arg('interval format, set in TwigExtension'),
135+
abstract_arg('timezone, set in TwigExtension'),
136+
abstract_arg('decimals, set in TwigExtension'),
137+
abstract_arg('decimal point, set in TwigExtension'),
138+
abstract_arg('thousands separator, set in TwigExtension'),
139+
])
140+
141+
->set('twig.runtime_loader', ContainerRuntimeLoader::class)
142+
->args([abstract_arg('runtime locator')])
143+
144+
->set('twig.error_renderer.html', TwigErrorRenderer::class)
145+
->decorate('error_renderer.html')
146+
->args([
147+
service('twig'),
148+
service('twig.error_renderer.html.inner'),
149+
inline_service(TwigErrorRenderer::class)
150+
->factory([TwigErrorRenderer::class, 'isDebug'])
151+
->args([service('request_stack'), param('kernel.debug')]),
152+
])
153+
;
154+
};

0 commit comments

Comments
 (0)
0