diff --git a/UPGRADE-3.0.md b/UPGRADE-3.0.md
index e15b0d3d8310f..7f4c9671e3712 100644
--- a/UPGRADE-3.0.md
+++ b/UPGRADE-3.0.md
@@ -490,6 +490,25 @@ UPGRADE FROM 2.x to 3.0
`Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface`
interface.
The `security.csrf.token_manager` should be used instead.
+
+ * The ability to pass `apc` as the `framework.validation.cache` config option value has been removed. Use `validator.mapping.cache.apc` instead:
+
+ Before:
+
+ ```yaml
+ framework:
+ validation:
+ cache: apc
+ ```
+
+ After:
+
+ ```yaml
+ framework:
+ validation:
+ cache: validator.mapping.cache.apc
+ ```
+
### HttpKernel
diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php
index a6c95874c34f2..a0ccb55a0980b 100644
--- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php
@@ -436,12 +436,7 @@ private function addValidationSection(ArrayNodeDefinition $rootNode)
->info('validation configuration')
->canBeEnabled()
->children()
- ->scalarNode('cache')
- ->beforeNormalization()
- // Can be removed in 3.0, once ApcCache support is dropped
- ->ifString()->then(function ($v) { return 'apc' === $v ? 'validator.mapping.cache.apc' : $v; })
- ->end()
- ->end()
+ ->scalarNode('cache')->end()
->booleanNode('enable_annotations')->defaultFalse()->end()
->arrayNode('static_method')
->defaultValue(array('loadValidatorMetadata'))
diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml
index ac153f91b27a5..5678654df63b6 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml
+++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml
@@ -28,8 +28,16 @@
-
- %validator.mapping.cache.prefix%
+
+
+
+
+
+
+ %validator.mapping.cache.prefix%
+
+
+
diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/full.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/full.php
index b6780cfa54ce2..bbb458caeff8a 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/full.php
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/full.php
@@ -56,7 +56,7 @@
),
'validation' => array(
'enabled' => true,
- 'cache' => 'apc',
+ 'cache' => 'validator.mapping.cache.apc',
),
'annotations' => array(
'cache' => 'file',
diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/full.xml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/full.xml
index a7a42d0605c52..28714bf59855c 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/full.xml
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/full.xml
@@ -38,7 +38,7 @@
%kernel.root_dir%/Fixtures/translations
-
+
diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/full.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/full.yml
index 572c5beac34ca..fcc662b3fe79c 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/full.yml
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/full.yml
@@ -44,7 +44,7 @@ framework:
paths: ['%kernel.root_dir%/Fixtures/translations']
validation:
enabled: true
- cache: apc
+ cache: validator.mapping.cache.apc
annotations:
cache: file
debug: true