diff --git a/UPGRADE-3.4.md b/UPGRADE-3.4.md
index 6561c15a0b46..d5ae0a934ffa 100644
--- a/UPGRADE-3.4.md
+++ b/UPGRADE-3.4.md
@@ -113,6 +113,10 @@ Form
FrameworkBundle
---------------
+ * The `cache:clear` command doesn't clear "app" PSR-6 cache pools anymore,
+ but still clears "system" ones.
+ Use the `cache:pool:clear` command to clear "app" pools instead.
+
* The `doctrine/cache` dependency has been removed; require it via `composer
require doctrine/cache` if you are using Doctrine cache in your project.
diff --git a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md
index 34af26de698e..f49eb6dbc2dd 100644
--- a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md
+++ b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md
@@ -4,6 +4,8 @@ CHANGELOG
3.4.0
-----
+ * Made the `cache:clear` command to *not* clear "app" PSR-6 cache pools anymore,
+ but to still clear "system" ones; use the `cache:pool:clear` command to clear "app" pools instead
* Always register a minimalist logger that writes in `stderr`
* Deprecated `profiler.matcher` option
* Added support for `EventSubscriberInterface` on `MicroKernelTrait`
diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CachePoolPass.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CachePoolPass.php
index dafe0b7b8fce..004a2c544da3 100644
--- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CachePoolPass.php
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CachePoolPass.php
@@ -106,7 +106,7 @@ public function process(ContainerBuilder $container)
foreach ($clearers as $id => $pools) {
$clearer = $container->getDefinition($id);
- if ($clearer instanceof ChilDefinition) {
+ if ($clearer instanceof ChildDefinition) {
$clearer->replaceArgument(0, $pools);
} else {
$clearer->setArgument(0, $pools);
diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
index dafecf9d581d..0e136bfe436f 100644
--- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
@@ -1802,7 +1802,7 @@ private function registerCacheConfiguration(array $config, ContainerBuilder $con
if (!$container->getParameter('kernel.debug')) {
$propertyAccessDefinition->setFactory(array(PropertyAccessor::class, 'createCache'));
$propertyAccessDefinition->setArguments(array(null, null, $version, new Reference('logger', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)));
- $propertyAccessDefinition->addTag('cache.pool', array('clearer' => 'cache.default_clearer'));
+ $propertyAccessDefinition->addTag('cache.pool', array('clearer' => 'cache.system_clearer'));
$propertyAccessDefinition->addTag('monolog.logger', array('channel' => 'cache'));
} else {
$propertyAccessDefinition->setClass(ArrayAdapter::class);
diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml
index 16b15a661768..b4d23a576ed0 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml
+++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml
@@ -29,7 +29,7 @@
-
+
0
@@ -101,6 +101,10 @@
+
+
+
+
diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/CachePoolsTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/CachePoolsTest.php
index 06ed75d64d5c..eafc798a4838 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/CachePoolsTest.php
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/CachePoolsTest.php
@@ -11,7 +11,7 @@
namespace Symfony\Bundle\FrameworkBundle\Tests\Functional;
-use Symfony\Component\Cache\Adapter\FilesystemAdapter;
+use Symfony\Component\Cache\Adapter\AdapterInterface;
use Symfony\Component\Cache\Adapter\RedisAdapter;
use Symfony\Component\Cache\Exception\InvalidArgumentException;
@@ -19,7 +19,7 @@ class CachePoolsTest extends WebTestCase
{
public function testCachePools()
{
- $this->doTestCachePools(array(), FilesystemAdapter::class);
+ $this->doTestCachePools(array(), AdapterInterface::class);
}
/**
@@ -67,7 +67,7 @@ public function testRedisCustomCachePools()
}
}
- public function doTestCachePools($options, $adapterClass)
+ private function doTestCachePools($options, $adapterClass)
{
static::bootKernel($options);
$container = static::$kernel->getContainer();
diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CachePools/config.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CachePools/config.yml
index eabf83825e05..de1e144dad06 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CachePools/config.yml
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CachePools/config.yml
@@ -6,6 +6,7 @@ framework:
pools:
cache.pool1:
public: true
+ adapter: cache.system
cache.pool2:
public: true
adapter: cache.pool3
diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CachePools/redis_config.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CachePools/redis_config.yml
index 02de40c5b81e..3bf10f448f9c 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CachePools/redis_config.yml
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CachePools/redis_config.yml
@@ -11,6 +11,7 @@ framework:
pools:
cache.pool1:
public: true
+ clearer: cache.system_clearer
cache.pool2:
public: true
clearer: ~
diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CachePools/redis_custom_config.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CachePools/redis_custom_config.yml
index 920663849594..d0a219753eb8 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CachePools/redis_custom_config.yml
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CachePools/redis_custom_config.yml
@@ -22,6 +22,7 @@ framework:
pools:
cache.pool1:
public: true
+ clearer: cache.system_clearer
cache.pool2:
public: true
clearer: ~