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 eeb561e

Browse filesBrowse files
[FrameworkBundle] Simplify config for app/system/pool caches
1 parent b9cb163 commit eeb561e
Copy full SHA for eeb561e

File tree

17 files changed

+152
-178
lines changed
Filter options

17 files changed

+152
-178
lines changed

‎UPGRADE-3.1.md

Copy file name to clipboardExpand all lines: UPGRADE-3.1.md
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ FrameworkBundle
9090
cache service. If you are using `serializer.mapping.cache.apc`, use
9191
`serializer.mapping.cache.doctrine.apc` instead.
9292

93-
* The `framework.serializer.cache` option has been deprecated. Configure a cache pool
94-
called `serializer` under `framework.cache.pools` instead.
93+
* The `framework.serializer.cache` option has been deprecated. Configure the
94+
`cache.serializer` service under `framework.cache.pools` instead.
9595

9696
Before:
9797

@@ -107,7 +107,7 @@ FrameworkBundle
107107
framework:
108108
cache:
109109
pools:
110-
serializer:
110+
cache.serializer:
111111
adapter: cache.adapter.apcu
112112

113113
HttpKernel

‎UPGRADE-4.0.md

Copy file name to clipboardExpand all lines: UPGRADE-4.0.md
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ FrameworkBundle
7878
* The service `serializer.mapping.cache.apc` has been removed; use
7979
`serializer.mapping.cache.doctrine.apc` instead.
8080

81-
* The `framework.serializer.cache` option has been removed. Configure a cache pool
82-
called `serializer` under `framework.cache.pools` instead.
81+
* The `framework.serializer.cache` option has been removed. Configure the
82+
`cache.serializer` service under `framework.cache.pools` instead.
8383

8484
Before:
8585

@@ -95,7 +95,7 @@ FrameworkBundle
9595
framework:
9696
cache:
9797
pools:
98-
serializer:
98+
cache.serializer:
9999
adapter: cache.adapter.apcu
100100
```
101101

‎src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CachePoolPass.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CachePoolPass.php
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public function process(ContainerBuilder $container)
6060
}
6161
unset($tags[0]['clearer']);
6262

63-
if (isset($tags[0]['provider']) && is_string($tags[0]['provider'])) {
63+
if (isset($tags[0]['provider'])) {
6464
$tags[0]['provider'] = new Reference($tags[0]['provider']);
6565
}
6666
$i = 0;

‎src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php
+18-19Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -557,35 +557,34 @@ private function addCacheSection(ArrayNodeDefinition $rootNode)
557557
->info('Cache configuration')
558558
->addDefaultsIfNotSet()
559559
->fixXmlConfig('pool')
560-
->fixXmlConfig('adapter')
561560
->children()
562-
->arrayNode('adapters')
561+
->scalarNode('app')
562+
->info('App related cache pools configuration')
563+
->defaultValue('cache.adapter.filesystem')
564+
->end()
565+
->scalarNode('system')
566+
->info('System related cache pools configuration')
567+
->defaultValue('cache.adapter.filesystem')
568+
->end()
569+
->scalarNode('redis_dsn')
570+
->defaultValue('redis://localhost')
571+
->end()
572+
->arrayNode('pools')
563573
->useAttributeAsKey('name')
564574
->prototype('array')
565575
->children()
566-
->scalarNode('parent')
567-
->isRequired()
568-
->info('The parent cache adapter service.')
569-
->end()
576+
->scalarNode('adapter')->defaultValue('cache.app')->end()
577+
->booleanNode('public')->defaultFalse()->end()
570578
->integerNode('default_lifetime')->end()
571579
->scalarNode('provider')
572-
->info('The service name to use as provider when the specified parent adapter needs one.')
580+
->info('The service name to use as provider when the specified adapter needs one.')
573581
->end()
574582
->scalarNode('clearer')->defaultValue('cache.default_pools_clearer')->end()
575583
->end()
576584
->end()
577-
->end()
578-
->arrayNode('pools')
579-
->useAttributeAsKey('name')
580-
->prototype('array')
581-
->children()
582-
->scalarNode('adapter')
583-
->info('The cache adapter service to use as template definition.')
584-
->defaultValue('cache.adapter.shared')
585-
->end()
586-
->booleanNode('public')->defaultTrue()->end()
587-
->integerNode('default_lifetime')->end()
588-
->end()
585+
->validate()
586+
->ifTrue(function ($v) { return isset($v['cache.app']) || isset($v['cache.system']); })
587+
->thenInvalid('"cache.app" and "cache.system" are reserved names')
589588
->end()
590589
->end()
591590
->end()

‎src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
+17-16Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public function load(array $configs, ContainerBuilder $container)
7373
$loader->load('property_access.xml');
7474

7575
// Load Cache configuration first as it is used by other components
76-
$loader->load('cache_pools.xml');
76+
$loader->load('cache.xml');
7777

7878
$configuration = $this->getConfiguration($configs, $container);
7979
$config = $this->processConfiguration($configuration, $configs);
@@ -984,7 +984,7 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
984984
$chainLoader->replaceArgument(0, $serializerLoaders);
985985

986986
if (isset($config['cache']) && $config['cache']) {
987-
@trigger_error('The "framework.serializer.cache" option is deprecated since Symfony 3.1 and will be removed in 4.0. You can configure a cache pool called "serializer" under "framework.cache.pools" instead.', E_USER_DEPRECATED);
987+
@trigger_error('The "framework.serializer.cache" option is deprecated since Symfony 3.1 and will be removed in 4.0. Configure the "cache.serializer" service under "framework.cache.pools" instead.', E_USER_DEPRECATED);
988988

989989
$container->setParameter(
990990
'serializer.mapping.cache.prefix',
@@ -999,7 +999,7 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
999999
CacheClassMetadataFactory::class,
10001000
array(
10011001
new Reference('serializer.mapping.cache_class_metadata_factory.inner'),
1002-
new Reference('cache.pool.serializer'),
1002+
new Reference('cache.serializer'),
10031003
)
10041004
);
10051005
$cacheMetadataFactory->setPublic(false);
@@ -1037,22 +1037,23 @@ private function registerPropertyInfoConfiguration(array $config, ContainerBuild
10371037

10381038
private function registerCacheConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
10391039
{
1040-
foreach ($config['adapters'] as $name => $adapterConfig) {
1041-
$adapterDefinition = new DefinitionDecorator($adapterConfig['parent']);
1042-
$adapterDefinition->setAbstract(true);
1043-
unset($adapterConfig['parent']);
1040+
$container->getDefinition('cache.default_redis_connection')
1041+
->replaceArgument(0, $config['redis_dsn'])
1042+
;
10441043

1045-
$adapterDefinition->addTag('cache.pool', $adapterConfig);
1046-
$container->setDefinition('cache.adapter.'.$name, $adapterDefinition);
1044+
foreach (array('app', 'system') as $name) {
1045+
$config['pools']['cache.'.$name] = array(
1046+
'adapter' => $config[$name],
1047+
'public' => true,
1048+
);
10471049
}
1050+
foreach ($config['pools'] as $name => $pool) {
1051+
$definition = new DefinitionDecorator($pool['adapter']);
1052+
$definition->setPublic($pool['public']);
1053+
unset($pool['adapter'], $pool['public']);
10481054

1049-
foreach ($config['pools'] as $name => $poolConfig) {
1050-
$poolDefinition = new DefinitionDecorator($poolConfig['adapter']);
1051-
$poolDefinition->setPublic($poolConfig['public']);
1052-
unset($poolConfig['adapter'], $poolConfig['public']);
1053-
1054-
$poolDefinition->addTag('cache.pool', $poolConfig);
1055-
$container->setDefinition('cache.pool.'.$name, $poolDefinition);
1055+
$definition->addTag('cache.pool', $pool);
1056+
$container->setDefinition($name, $definition);
10561057
}
10571058

10581059
$this->addClassesToCompile(array(

‎src/Symfony/Bundle/FrameworkBundle/Resources/config/cache_pools.xml renamed to ‎src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml
+13-7Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,26 @@
1010
<tag name="kernel.cache_clearer" />
1111
</service>
1212

13-
<service id="cache.pool.app" parent="cache.adapter.shared">
13+
<service id="cache.default_redis_connection" class="Redis" public="false">
14+
<factory class="Symfony\Component\Cache\Adapter\RedisAdapter" method="createConnection" />
15+
<argument />
16+
</service>
17+
18+
<service id="cache.app" parent="cache.adapter.filesystem">
1419
<tag name="cache.pool" />
1520
</service>
1621

17-
<service id="cache.pool.validator" parent="cache.adapter.local" public="false">
22+
<service id="cache.system" parent="cache.adapter.filesystem">
1823
<tag name="cache.pool" />
1924
</service>
2025

21-
<service id="cache.pool.serializer" parent="cache.adapter.local" public="false">
26+
<service id="cache.validator" parent="cache.system" public="false">
2227
<tag name="cache.pool" />
2328
</service>
2429

25-
<service id="cache.adapter.local" alias="cache.adapter.filesystem" />
26-
<service id="cache.adapter.shared" alias="cache.adapter.filesystem" />
30+
<service id="cache.serializer" parent="cache.system" public="false">
31+
<tag name="cache.pool" />
32+
</service>
2733

2834
<service id="cache.adapter.apcu" class="Symfony\Component\Cache\Adapter\ApcuAdapter" abstract="true">
2935
<tag name="cache.pool" clearer="cache.default_pools_clearer" />
@@ -65,9 +71,9 @@
6571
</service>
6672

6773
<service id="cache.adapter.redis" class="Symfony\Component\Cache\Adapter\RedisAdapter" abstract="true">
68-
<tag name="cache.pool" clearer="cache.default_pools_clearer" />
74+
<tag name="cache.pool" provider="cache.default_redis_connection" clearer="cache.default_pools_clearer" />
6975
<tag name="monolog.logger" channel="cache" />
70-
<argument /> <!-- Redis connection object -->
76+
<argument /> <!-- Redis connection -->
7177
<argument /> <!-- namespace -->
7278
<argument /> <!-- default lifetime -->
7379
<call method="setLogger">

‎src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd
+8-12Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -205,24 +205,20 @@
205205
</xsd:complexType>
206206

207207
<xsd:complexType name="cache">
208-
<xsd:choice minOccurs="1" maxOccurs="unbounded">
209-
<xsd:element name="adapter" type="cache_adapter" />
210-
<xsd:element name="pool" type="cache_pool" />
211-
</xsd:choice>
212-
</xsd:complexType>
213-
214-
<xsd:complexType name="cache_adapter">
215-
<xsd:attribute name="name" type="xsd:string" use="required" />
216-
<xsd:attribute name="parent" type="xsd:string" />
217-
<xsd:attribute name="default-lifetime" type="xsd:integer" />
218-
<xsd:attribute name="provider" type="xsd:string" />
219-
<xsd:attribute name="clearer" type="xsd:string" />
208+
<xsd:sequence>
209+
<xsd:element name="app" type="xsd:string" minOccurs="0" maxOccurs="1" />
210+
<xsd:element name="system" type="xsd:string" minOccurs="0" maxOccurs="1" />
211+
<xsd:element name="redis_dsn" type="xsd:string" minOccurs="0" maxOccurs="1" />
212+
<xsd:element name="pool" type="cache_pool" minOccurs="0" maxOccurs="unbounded" />
213+
</xsd:sequence>
220214
</xsd:complexType>
221215

222216
<xsd:complexType name="cache_pool">
223217
<xsd:attribute name="name" type="xsd:string" use="required" />
224218
<xsd:attribute name="adapter" type="xsd:string" />
225219
<xsd:attribute name="public" type="xsd:boolean" />
226220
<xsd:attribute name="default-lifetime" type="xsd:integer" />
221+
<xsd:attribute name="provider" type="xsd:string" />
222+
<xsd:attribute name="clearer" type="xsd:string" />
227223
</xsd:complexType>
228224
</xsd:schema>

‎src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<service id="validator.mapping.class_metadata_factory" alias="validator" public="false" />
3030

3131
<service id="validator.mapping.cache.symfony" class="Symfony\Component\Validator\Mapping\Cache\Psr6Cache" public="false">
32-
<argument type="service" id="cache.pool.validator" />
32+
<argument type="service" id="cache.validator" />
3333
</service>
3434

3535
<service id="validator.mapping.cache.doctrine.apc" class="Symfony\Component\Validator\Mapping\Cache\DoctrineCache" public="false">

‎src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php
+3-1Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,8 +267,10 @@ protected static function getBundleDefaultConfig()
267267
'packages' => array(),
268268
),
269269
'cache' => array(
270-
'adapters' => array(),
271270
'pools' => array(),
271+
'app' => 'cache.adapter.filesystem',
272+
'system' => 'cache.adapter.filesystem',
273+
'redis_dsn' => 'redis://localhost',
272274
),
273275
);
274276
}

‎src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/cache.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/cache.php
+7-16Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,26 @@
22

33
$container->loadFromExtension('framework', array(
44
'cache' => array(
5-
'adapters' => array(
6-
'foo' => array(
7-
'parent' => 'cache.adapter.filesystem',
8-
'default_lifetime' => 30,
9-
),
10-
'app_redis' => array(
11-
'parent' => 'cache.adapter.redis',
12-
'provider' => 'app.redis_connection',
13-
'default_lifetime' => 30,
14-
),
15-
),
165
'pools' => array(
17-
'foo' => array(
6+
'cache.foo' => array(
187
'adapter' => 'cache.adapter.apcu',
198
'default_lifetime' => 30,
209
),
21-
'bar' => array(
10+
'cache.bar' => array(
2211
'adapter' => 'cache.adapter.doctrine',
2312
'default_lifetime' => 5,
13+
'provider' => 'app.doctrine_cache_provider',
2414
),
25-
'baz' => array(
15+
'cache.baz' => array(
2616
'adapter' => 'cache.adapter.filesystem',
2717
'default_lifetime' => 7,
2818
),
29-
'foobar' => array(
19+
'cache.foobar' => array(
3020
'adapter' => 'cache.adapter.psr6',
3121
'default_lifetime' => 10,
22+
'provider' => 'app.cache_pool',
3223
),
33-
'def' => array(
24+
'cache.def' => array(
3425
'default_lifetime' => 11,
3526
),
3627
),

‎src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/cache.xml

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/cache.xml
+5-7Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,11 @@
77

88
<framework:config>
99
<framework:cache>
10-
<framework:adapter name="foo" parent="cache.adapter.filesystem" default-lifetime="30" />
11-
<framework:adapter name="app_redis" parent="cache.adapter.redis" provider="app.redis_connection" default-lifetime="30" />
12-
<framework:pool name="foo" adapter="cache.adapter.apcu" default-lifetime="30" />
13-
<framework:pool name="bar" adapter="cache.adapter.doctrine" default-lifetime="5" />
14-
<framework:pool name="baz" adapter="cache.adapter.filesystem" default-lifetime="7" />
15-
<framework:pool name="foobar" adapter="cache.adapter.psr6" default-lifetime="10" />
16-
<framework:pool name="def" default-lifetime="11" />
10+
<framework:pool name="cache.foo" adapter="cache.adapter.apcu" default-lifetime="30" />
11+
<framework:pool name="cache.bar" adapter="cache.adapter.doctrine" default-lifetime="5" provider="app.doctrine_cache_provider" />
12+
<framework:pool name="cache.baz" adapter="cache.adapter.filesystem" default-lifetime="7" />
13+
<framework:pool name="cache.foobar" adapter="cache.adapter.psr6" default-lifetime="10" provider="app.cache_pool" />
14+
<framework:pool name="cache.def" default-lifetime="11" />
1715
</framework:cache>
1816
</framework:config>
1917
</container>
+7-13Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,19 @@
11
framework:
22
cache:
3-
adapters:
4-
foo:
5-
parent: cache.adapter.filesystem
6-
default_lifetime: 30
7-
app_redis:
8-
parent: cache.adapter.redis
9-
provider: app.redis_connection
10-
default_lifetime: 30
113
pools:
12-
foo:
4+
cache.foo:
135
adapter: cache.adapter.apcu
146
default_lifetime: 30
15-
bar:
7+
cache.bar:
168
adapter: cache.adapter.doctrine
179
default_lifetime: 5
18-
baz:
10+
provider: app.doctrine_cache_provider
11+
cache.baz:
1912
adapter: cache.adapter.filesystem
2013
default_lifetime: 7
21-
foobar:
14+
cache.foobar:
2215
adapter: cache.adapter.psr6
2316
default_lifetime: 10
24-
def:
17+
provider: app.cache_pool
18+
cache.def:
2519
default_lifetime: 11

0 commit comments

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