8000 bug #12975 [FrameworkBundle] Allow custom services for validator mapp… · symfony/symfony@0566a50 · GitHub
[go: up one dir, main page]

Skip to content

Commit 0566a50

Browse files
committed
bug #12975 [FrameworkBundle] Allow custom services for validator mapping cache. (jakzal)
This PR was merged into the 2.5 branch. Discussion ---------- [FrameworkBundle] Allow custom services for validator mapping cache. | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #12803 | License | MIT | Doc PR | - #9892 introduced `DoctrineCache`, but it's not really used by the FrameworkBundle. This was overlooked, therefore I think it should go into 2.5. This PR will let us to configure a service id, instead of a driver name. The only exception is apc, which is converted to `validator.mapping.cache.apc` to keep BC. Examples: ```yaml framework: validation: cache: apc # converted to validator.mapping.cache.apc ``` ```yaml framework: validation: cache: my_custom_cache_service ``` It would be nice to be able to provide a doctrine service id, instead of `CacheInterface` implementation. It could be automatically decorated with `DoctrineCache`: ```yaml framework: validation: cache: doctrine: my_doctrine_cache_service # could be provided by DoctrineCacheBundle ``` I'll work on it next. Commits ------- 4cdcf10 [FrameworkBundle] Allow custom services for validator mapping cache.
2 parents aaf4c84 + 4cdcf10 commit 0566a50

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,12 @@ private function addValidationSection(ArrayNodeDefinition $rootNode)
442442
->info('validation configuration')
443443
->canBeEnabled()
444444
->children()
445-
->scalarNode('cache')->end()
445+
->scalarNode('cache')
446+
->beforeNormalization()
447+
// Can be removed in 3.0, once ApcCache support is dropped
448+
->ifString()->then(function ($v) { return 'apc' === $v ? 'validator.mapping.cache.apc' : $v; })
449+
->end()
450+
->end()
446451
->booleanNode('enable_annotations')->defaultFalse()->end()
447452
->arrayNode('static_method')
448453
->defaultValue(array('loadValidatorMetadata'))

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,7 @@ private function registerValidationConfiguration(array $config, ContainerBuilder
716716
'validator_'.hash('sha256', $container->getParameter('kernel.root_dir'))
717717
);
718718

719-
$validatorBuilder->addMethodCall('setMetadataCache', array(new Reference('validator.mapping.cache.'.$config['cache'])));
719+
$validatorBuilder->addMethodCall('setMetadataCache', array(new Reference($config['cache'])));
720720
}
721721

722722
switch ($config['api']) {

0 commit comments

Comments
 (0)
0