Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2261d82

Browse files
committed
[FrameworkBundle] Fix cache pool configuration with one adapter and one provider
1 parent c9275a9 commit 2261d82

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1012,14 +1012,22 @@ private function addCacheSection(ArrayNodeDefinition $rootNode)
10121012
->prototype('array')
10131013
->fixXmlConfig('adapter')
10141014
->beforeNormalization()
1015-
->ifTrue(function ($v) { return (isset($v['adapters']) || \is_array($v['adapter'] ?? null)) && isset($v['provider']); })
1015+
->ifTrue(function ($v) { return \is_array($v['adapter'] ?? null) && isset($v['provider']); })
10161016
->thenInvalid('Pool cannot have a "provider" while "adapter" is set to a map')
10171017
->end()
1018+
->beforeNormalization()
1019+
->ifTrue(function ($v) { return \is_array($v['adapters'] ?? null) && 1 < \count($v['adapters']) && isset($v['provider']); })
1020+
->thenInvalid('Pool cannot have a "provider" while "adapters" contains more than one value')
1021+
->end()
10181022
->children()
10191023
->arrayNode('adapters')
10201024
->performNoDeepMerging()
10211025
->info('One or more adapters to chain for creating the pool, defaults to "cache.app".')
10221026
->beforeNormalization()
1027+
->beforeNormalization()
1028+
->ifTrue(function ($v) { return !\is_array($v); })
1029+
->thenInvalid('Pool "adapters" must be a map')
1030+
->end()
10231031
->always()->then(function ($values) {
10241032
if ([0] === array_keys($values) && \is_array($values[0])) {
10251033
return $values[0];

0 commit comments

Comments
 (0)