Skip to content

Commit b8276f2

Browse files
iamvariamvar
authored andcommitted
[Cache] Move configuration to PHP
1 parent 74ca708 commit b8276f2

File tree

5 files changed

+263
-184
lines changed

5 files changed

+263
-184
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ public function load(array $configs, ContainerBuilder $container)
196196
}
197197

198198
// Load Cache configuration first as it is used by other components
199-
$loader->load('cache.xml');
199+
$phpLoader->load('cache.php');
200200

201201
$configuration = $this->getConfiguration($configs, $container);
202202
$config = $this->processConfiguration($configuration, $configs);
@@ -579,7 +579,7 @@ private function registerProfilerConfiguration(array $config, ContainerBuilder $
579579

580580
$phpLoader->load('profiling.php');
581581
$phpLoader->load('collectors.php');
582-
$loader->load('cache_debug.xml');
582+
$phpLoader->load('cache_debug.php');
583583

584584
if ($this->formConfigEnabled) {
585585
$loader->load('form_debug.xml');

Resources/config/cache.php

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
13+
14+
use Psr\Cache\CacheItemPoolInterface;
15+
use Symfony\Component\Cache\Adapter\AbstractAdapter;
16+
use Symfony\Component\Cache\Adapter\AdapterInterface;
17+
use Symfony\Component\Cache\Adapter\ApcuAdapter;
18+
use Symfony\Component\Cache\Adapter\ArrayAdapter;
19+
use Symfony\Component\Cache\Adapter\DoctrineAdapter;
20+
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
21+
use Symfony\Component\Cache\Adapter\MemcachedAdapter;
22+
use Symfony\Component\Cache\Adapter\PdoAdapter;
23+
use Symfony\Component\Cache\Adapter\ProxyAdapter;
24+
use Symfony\Component\Cache\Adapter\RedisAdapter;
25+
use Symfony\Component\Cache\Adapter\TagAwareAdapter;
26+
use Symfony\Component\Cache\Marshaller\DefaultMarshaller;
27+
use Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer;
28+
use Symfony\Contracts\Cache\CacheInterface;
29+
use Symfony\Contracts\Cache\TagAwareCacheInterface;
30+
31+
return static function (ContainerConfigurator $container) {
32+
$container->services()
33+
->set('cache.app')
34+
->parent('cache.adapter.filesystem')
35+
->public()
36+
->tag('cache.pool', ['clearer' => 'cache.app_clearer'])
37+
38+
->set('cache.app.taggable', TagAwareAdapter::class)
39+
->args([service('cache.app')])
40+
41+
->set('cache.system')
42+
->parent('cache.adapter.system')
43+
->public()
44+
->tag('cache.pool')
45+
46+
->set('cache.validator')
47+
->parent('cache.system')
48+
->private()
49+
->tag('cache.pool')
50+
51+
->set('cache.serializer')
52+
->parent('cache.system')
53+
->private()
54+
->tag('cache.pool')
55+
56+
->set('cache.annotations')
57+
->parent('cache.system')
58+
->private()
59+
->tag('cache.pool')
60+
61+
->set('cache.property_info')
62+
->parent('cache.system')
63+
->private()
64+
->tag('cache.pool')
65+
66+
->set('cache.messenger.restart_workers_signal')
67+
->parent('cache.app')
68+
->private()
69+
->tag('cache.pool')
70+
71+
->set('cache.adapter.system', AdapterInterface::class)
72+
->abstract()
73+
->factory([AbstractAdapter::class, 'createSystemCache'])
74+
->args([
75+
'', // namespace
76+
0, // default lifetime
77+
abstract_arg('version'),
78+
sprintf('%s/pools', param('kernel.cache_dir')),
79+
service('logger')->ignoreOnInvalid(),
80+
])
81+
->tag('cache.pool', ['clearer' => 'cache.system_clearer', 'reset' => 'reset'])
82+
->tag('monolog.logger', ['channel' => 'cache'])
83+
84+
->set('cache.adapter.apcu', ApcuAdapter::class)
85+
->abstract()
86+
->args([
87+
'', // namespace
88+
0, // default lifetime
89+
abstract_arg('version'),
90+
])
91+
->call('setLogger', [service('logger')->ignoreOnInvalid()])
92+
->tag('cache.pool', ['clearer' => 'cache.default_clearer', 'reset' => 'reset'])
93+
->tag('monolog.logger', ['channel' => 'cache'])
94+
95+
->set('cache.adapter.doctrine', DoctrineAdapter::class)
96+
->abstract()
97+
->args([
98+
abstract_arg('Doctrine provider service'),
99+
'', // namespace
100+
0, // default lifetime
101+
])
102+
->call('setLogger', [service('logger')->ignoreOnInvalid()])
103+
->tag('cache.pool', [
104+
'provider' => 'cache.default_doctrine_provider',
105+
'clearer' => 'cache.default_clearer',
106+
'reset' => 'reset',
107+
])
108+
->tag('monolog.logger', ['channel' => 'cache'])
109+
110+
->set('cache.adapter.filesystem', FilesystemAdapter::class)
111+
->abstract()
112+
->args([
113+
'', // namespace
114+
0, // default lifetime
115+
sprintf('%s/pools', param('kernel.cache_dir')),
116+
service('cache.default_marshaller')->ignoreOnInvalid(),
117+
])
118+
->call('setLogger', [service('logger')->ignoreOnInvalid()])
119+
->tag('cache.pool', ['clearer' => 'cache.default_clearer', 'reset' => 'reset'])
120+
->tag('monolog.logger', ['channel' => 'cache'])
121+
122+
->set('cache.adapter.psr6', ProxyAdapter::class)
123+
->abstract()
124+
->args([
125+
abstract_arg('PSR-6 provider service'),
126+
'', // namespace
127+
0, // default lifetime
128+
])
129+
->tag('cache.pool', [
130+
'provider' => 'cache.default_psr6_provider',
131+
'clearer' => 'cache.default_clearer',
132+
'reset' => 'reset',
133+
])
134+
135+
->set('cache.adapter.redis', RedisAdapter::class)
136+
->abstract()
137+
->args([
138+
abstract_arg('Redis connection service'),
139+
'', // namespace
140+
0, // default lifetime
141+
service('cache.default_marshaller')->ignoreOnInvalid(),
142+
])
143+
->call('setLogger', [service('logger')->ignoreOnInvalid()])
144+
->tag('cache.pool', [
145+
'provider' => 'cache.default_redis_provider',
146+
'clearer' => 'cache.default_clearer',
147+
'reset' => 'reset',
148+
])
149+
->tag('monolog.logger', ['channel' => 'cache'])
150+
151+
->set('cache.adapter.memcached', MemcachedAdapter::class)
152+
->abstract()
153+
->args([
154+
abstract_arg('Memcached connection service'),
155+
'', // namespace
156+
0, // default lifetime
157+
service('cache.default_marshaller')->ignoreOnInvalid(),
158+
])
159+
->call('setLogger', [service('logger')->ignoreOnInvalid()])
160+
->tag('cache.pool', [
161+
'provider' => 'cache.default_memcached_provider',
162+
'clearer' => 'cache.default_clearer',
163+
'reset' => 'reset',
164+
])
165+
->tag('monolog.logger', ['channel' => 'cache'])
166+
167+
->set('cache.adapter.pdo', PdoAdapter::class)
168+
->abstract()
169+
->args([
170+
abstract_arg('PDO connection service'),
171+
'', // namespace
172+
0, // default lifetime
173+
[], // table options
174+
service('cache.default_marshaller')->ignoreOnInvalid(),
175+
])
176+
->call('setLogger', [service('logger')->ignoreOnInvalid()])
177+
->tag('cache.pool', [
178+
'provider' => 'cache.default_pdo_provider',
179+
'clearer' => 'cache.default_clearer',
180+
'reset' => 'reset',
181+
])
182+
->tag('monolog.logger', ['channel' => 'cache'])
183+
184+
->set('cache.adapter.array', ArrayAdapter::class)
185+
->abstract()
186+
->args([
187+
0, // default lifetime
188+
])
189+
->call('setLogger', [service('logger')->ignoreOnInvalid()])
190+
->tag('cache.pool', ['clearer' => 'cache.default_clearer', 'reset' => 'reset'])
191+
->tag('monolog.logger', ['channel' => 'cache'])
192+
193+
->set('cache.default_marshaller', DefaultMarshaller::class)
194+
->args([
195+
null, // use igbinary_serialize() when available
196+
])
197+
198+
->set('cache.default_clearer', Psr6CacheClearer::class)
199+
->args([
200+
[],
201+
])
202+
203+
->set('cache.system_clearer')
204+
->parent('cache.default_clearer')
205+
->public()
206+
207+
->set('cache.global_clearer')
208+
->parent('cache.default_clearer')
209+
->public()
210+
211+
->alias('cache.app_clearer', 'cache.default_clearer')
212+
->public()
213+
214+
->alias(CacheItemPoolInterface::class, 'cache.app')
215+
216+
->alias(AdapterInterface::class, 'cache.app')
217+
218+
->alias(CacheInterface::class, 'cache.app')
219+
220+
->alias(TagAwareCacheInterface::class, 'cache.app.taggable')
221+
;
222+
};

Resources/config/cache.xml

Lines changed: 0 additions & 157 deletions
This file was deleted.

0 commit comments

Comments
 (0)