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

Skip to content

Commit ad3c202

Browse files
committed
[Twig] Move configuration to PHP
1 parent 1871889 commit ad3c202

File tree

9 files changed

+226
-228
lines changed

9 files changed

+226
-228
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: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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+
11+
->set('twig.command.debug', DebugCommand::class)
12+
->args([
13+
ref('twig'),
14+
param('kernel.project_dir'),
15+
param('kernel.bundles_metadata'),
16+
param('twig.default_path'),
17+
ref('debug.file_link_formatter')->nullOnInvalid(),
18+
])
19+
->tag('console.command', ['command' => 'debug:twig'])
20+
21+
->set('twig.command.lint', LintCommand::class)
22+
->args([ref('twig')])
23+
->tag('console.command', ['command' => 'lint:twig'])
24+
;
25+
};

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

Lines changed: 0 additions & 24 deletions
This file was deleted.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
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+
12+
->set('twig.extension.form', FormExtension::class)
13+
14+
->set('twig.form.engine', TwigRendererEngine::class)
15+
->args([param('twig.form.resources'), ref('twig')])
16+
17+
->set('twig.form.renderer', FormRenderer::class)
18+
->args([ref('twig.form.engine'), ref('security.csrf.token_manager')->nullOnInvalid()])
19+
->tag('twig.runtime')
20+
;
21+
};

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

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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+
11+
->set('twig.mailer.message_listener', MessageListener::class)
12+
->args([null, ref('twig.mime_body_renderer')])
13+
->tag('kernel.event_subscriber')
14+
15+
->set('twig.mime_body_renderer', BodyRenderer::class)
16+
->args([ref('twig')])
17+
;
18+
};

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

Lines changed: 0 additions & 18 deletions
This file was deleted.
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
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+
44+
->set('twig', Environment::class)
45+
->public()
46+
->args([ref('twig.loader'), abstract_arg('Twig options')])
47+
->call('addGlobal', ['app', ref('twig.app_variable')])
48+
->call('addRuntimeLoader', [ref('twig.runtime_loader')])
49+
->configurator([ref('twig.configurator.environment'), 'configure'])
50+
->tag('container.preload', ['class' => FilesystemCache::class])
51+
->tag('container.preload', ['class' => CoreExtension::class])
52+
->tag('container.preload', ['class' => EscaperExtension::class])
53+
->tag('container.preload', ['class' => OptimizerExtension::class])
54+
->tag('container.preload', ['class' => StagingExtension::class])
55+
->tag('container.preload', ['class' => ExtensionSet::class])
56+
->tag('container.preload', ['class' => Template::class])
57+
->tag('container.preload', [' F42D ;class' => TemplateWrapper::class])
58+
59+
->alias('Twig_Environment', 'twig')
60+
->alias(Environment::class, 'twig')
61+
62+
->set('twig.app_variable', AppVariable::class)
63+
->call('setEnvironment', [param('kernel.environment')])
64+
->call('setDebug', [param('kernel.debug')])
65+
->call('setTokenStorage', [ref('security.token_storage')->ignoreOnInvalid()])
66+
->call('setRequestStack', [ref('request_stack')->ignoreOnInvalid()])
67+
68+
->set('twig.template_iterator', TemplateIterator::class)
69+
->args([ref('kernel'), abstract_arg('Twig paths'), param('twig.default_path')])
70+
71+
->set('twig.template_cache_warmer', TemplateCacheWarmer::class)
72+
->args([ref(ContainerInterface::class, ref('twig.template_iterator')])
73+
->tag('kernel.cache_warmer')
74+
->tag('container.service_subscriber', ['id' => 'twig'])
75+
76+
->set('twig.loader.native_filesystem', FilesystemLoader::class)
77+
->args([[], param('kernel.project_dir')])
78+
->tag('twig.loader')
79+
80+
->set('twig.loader.chain', ChainLoader::class)
81+
82+
->set('twig.extension.profiler', ProfilerExtension::class)
83+
->args([ref('twig.profile'), ref('debug.stopwatch')->ignoreOnInvalid()])
84+
85+
->set('twig.profile', Profile::class)
86+
87+
->set('data_collector.twig', TwigDataCollector::class)
88+
->args([ref('twig.profile'), ref('twig')])
89+
->tag('data_collector', ['template' => '@WebProfiler/Collector/twig.html.twig', 'id' => 'twig', 'priority' => 257])
90+
91+
->set('twig.extension.trans', TranslationExtension::class)
92+
->args([ref('translation')->nullOnInvalid()])
93+
->tag('twig.extension')
94+
95+
->set('twig.extension.assets', AssetExtension::class)
96+
->args([ref('assets.package')])
97+
98+
->set('twig.extension.code', CodeExtension::class)
99+
->args([ref('debug.file_link_formatter')->ignoreOnInvalid(), param('kernel.project_dir'), param('kernel.charset')])
100+
->tag('twig.extension')
101+
102+
->set('twig.extension.routing', RoutingExtension::class)
103+
->args([ref('router')])
104+
105+
->set('twig.extension.yaml', YamlExtension::class)
106+
107+
->set('twig.extension.debug.stopwatch', StopwatchExtension::class)
108+
->args([ref('debug.stopwatch')->ignoreOnInvalid(), param('kernel.debug')])
109+
110+
->set('twig.extension.expression', ExpressionExtension::class)
111+
112+
->set('twig.extension.httpkernel', HttpKernelExtension::class)
113+
114+
->set('twig.runtime.httpkernel', HttpKernelRuntime::class)
115+
->args([ref('fragment.handler')])
116+
117+
->set('twig.extension.httpfoundation', HttpFoundationExtension::class)
118+
->args([ref('url_helper')])
119+
120+
->set('twig.extension.debug', DebugExtension::class)
121+
122+
->set('twig.extension.weblink', WebLinkExtension::class)
123+
->args([ref('request_stack')])
124+
125+
->set('twig.translation.extractor', TwigExtractor::class)
126+
->args([ref('twig')])
127+
->tag('translation.extractor', ['alias' => 'twig'])
128+
129+
->set('workflow.twig_extension', WorkflowExtension::class)
130+
->args([ref('workflow.registry')])
131+
132+
->set('twig.configurator.environment', EnvironmentConfigurator::class)
133+
->args([
134+
abstract_arg('date format, set in TwigExtension'),
135+
abstract_arg('interval format, set in TwigExtension'),
136+
abstract_arg('timezone, set in TwigExtension'),
137+
abstract_arg('decimals, set in TwigExtension'),
138+
abstract_arg('decimal point, set in TwigExtension'),
139+
abstract_arg('thousands separator, set in TwigExtension'),
140+
])
141+
142+
->set('twig.runtime_loader', ContainerRuntimeLoader::class)
143+
->args([abstract_arg('runtime locator')])
144+
145+
->set('twig.error_renderer.html', TwigErrorRenderer::class)
146+
->decorate('error_renderer.html')
147+
->args([
148+
ref('twig'),
149+
ref('twig.error_renderer.html.inner'),
150+
service(TwigErrorRenderer::class)
151+
->factory([TwigErrorRenderer::class, 'isDebug'])
152+
->args([ref('request_stack'), param('kernel.debug')]),
153+
])
154+
155+
;
156+
};

0 commit comments

Comments
 (0)
0