Skip to content

Commit 22bf5c3

Browse files
[Cache] Unconditionally use PhpFilesAdapter for system pools
1 parent 50c4384 commit 22bf5c3

File tree

11 files changed

+38
-44
lines changed

11 files changed

+38
-44
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CachePoolClearerPass.php

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
namespace Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler;
1313

14-
use Symfony\Component\Cache\Adapter\AbstractAdapter;
1514
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
1615
use Symfony\Component\DependencyInjection\ContainerBuilder;
1716
use Symfony\Component\DependencyInjection\Reference;
@@ -38,22 +37,5 @@ public function process(ContainerBuilder $container)
3837
}
3938
$clearer->replaceArgument(0, $pools);
4039
}
41-
42-
if (!$container->has('cache.annotations')) {
43-
return;
44-
}
45-
$factory = array(AbstractAdapter::class, 'createSystemCache');
46-
$annotationsPool = $container->findDefinition('cache.annotations');
47-
if ($factory !== $annotationsPool->getFactory() || 4 !== count($annotationsPool->getArguments())) {
48-
return;
49-
}
50-
if ($container->has('monolog.logger.cache')) {
51-
$annotationsPool->addArgument(new Reference('monolog.logger.cache'));
52-
} elseif ($container->has('cache.system')) {
53-
$systemPool = $container->findDefinition('cache.system');
54-
if ($factory === $systemPool->getFactory() && 5 <= count($systemArgs = $systemPool->getArguments())) {
55-
$annotationsPool->addArgument($systemArgs[4]);
56-
}
57-
}
5840
}
5941
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1538,7 +1538,6 @@ private function registerCacheConfiguration(array $config, ContainerBuilder $con
15381538
{
15391539
$version = new Parameter('container.build_id');
15401540
$container->getDefinition('cache.adapter.apcu')->replaceArgument(2, $version);
1541-
$container->getDefinition('cache.adapter.system')->replaceArgument(2, $version);
15421541
$container->getDefinition('cache.adapter.filesystem')->replaceArgument(2, $config['directory']);
15431542

15441543
if (isset($config['prefix_seed'])) {

src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@
3535
<tag name="cache.pool" />
3636
</service>
3737

38-
<service id="cache.adapter.system" class="Symfony\Component\Cache\Adapter\AdapterInterface" abstract="true">
39-
<factory class="Symfony\Component\Cache\Adapter\AbstractAdapter" method="createSystemCache" />
38+
<service id="cache.adapter.system" class="Symfony\Component\Cache\Adapter\PhpFilesAdapter" abstract="true">
4039
<tag name="cache.pool" clearer="cache.system_clearer" />
4140
<tag name="monolog.logger" channel="cache" />
4241
<argument /> <!-- namespace -->
4342
<argument>0</argument> <!-- default lifetime -->
44-
<argument /> <!-- version -->
4543
<argument>%kernel.cache_dir%/pools</argument>
46-
<argument type="service" id="logger" on-invalid="ignore" />
44+
<call method="setLogger">
45+
<argument type="service" id="logger" on-invalid="ignore" />
46+
</call>
4747
</service>
4848

4949
<service id="cache.adapter.apcu" class="Symfony\Component\Cache\Adapter\ApcuAdapter" abstract="true">

src/Symfony/Component/Cache/Adapter/AbstractAdapter.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,13 @@ function ($deferred, $namespace, &$expiredIds) use ($getId) {
8787
* @param LoggerInterface|null $logger
8888
*
8989
* @return AdapterInterface
90+
*
91+
* @deprecated since Symfony 4.2.
9092
*/
9193
public static function createSystemCache($namespace, $defaultLifetime, $version, $directory, LoggerInterface $logger = null)
9294
{
95+
@trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2.', __CLASS__), E_USER_DEPRECATED);
96+
9397
if (null === self::$apcuSupported) {
9498
self::$apcuSupported = ApcuAdapter::isSupported();
9599
}

src/Symfony/Component/Cache/Adapter/PhpFilesAdapter.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface
2424
*/
2525
public function __construct(string $namespace = '', int $defaultLifetime = 0, string $directory = null)
2626
{
27-
if (!static::isSupported()) {
28-
throw new CacheException('OPcache is not enabled');
29-
}
27+
self::$startTime = self::$startTime ?? $_SERVER['REQUEST_TIME'] ?? time();
3028
parent::__construct('', $defaultLifetime);
3129
$this->init($namespace, $directory);
3230

src/Symfony/Component/Cache/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ CHANGELOG
66

77
* added `CacheInterface`, which should become the preferred way to use a cache
88
* throw `LogicException` when `CacheItem::tag()` is called on an item coming from a non tag-aware pool
9+
* deprecated the `AbstractAdapter::createSystemCache()` method
910

1011
3.4.0
1112
-----

src/Symfony/Component/Cache/Simple/PhpFilesCache.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ class PhpFilesCache extends AbstractCache implements PruneableInterface
2424
*/
2525
public function __construct(string $namespace = '', int $defaultLifetime = 0, string $directory = null)
2626
{
27-
if (!static::isSupported()) {
28-
throw new CacheException('OPcache is not enabled');
29-
}
27+
self::$startTime = self::$startTime ?? $_SERVER['REQUEST_TIME'] ?? time();
3028
parent::__construct('', $defaultLifetime);
3129
$this->init($namespace, $directory);
3230

src/Symfony/Component/Cache/Tests/Adapter/PhpFilesAdapterTest.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@ class PhpFilesAdapterTest extends AdapterTestCase
2525

2626
public function createCachePool()
2727
{
28-
if (!PhpFilesAdapter::isSupported()) {
29-
$this->markTestSkipped('OPcache extension is not enabled.');
30-
}
31-
3228
return new PhpFilesAdapter('sf-cache');
3329
}
3430

src/Symfony/Component/Cache/Tests/Simple/PhpFilesCacheTest.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@ class PhpFilesCacheTest extends CacheTestCase
2525

2626
public function createSimpleCache()
2727
{
28-
if (!PhpFilesCache::isSupported()) {
29-
$this->markTestSkipped('OPcache extension is not enabled.');
30-
}
31-
3228
return new PhpFilesCache('sf-cache');
3329
}
3430

src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ protected function doClear($namespace)
5656
$ok = true;
5757

5858
foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->directory, \FilesystemIterator::SKIP_DOTS)) as $file) {
59-
$ok = ($file->isDir() || @unlink($file) || !file_exists($file)) && $ok;
59+
$ok = ($file->isDir() || $this->doUnlink($file) || !file_exists($file)) && $ok;
6060
}
6161

6262
return $ok;
@@ -71,7 +71,7 @@ protected function doDelete(array $ids)
7171

7272
foreach ($ids as $id) {
7373
$file = $this->getFile($id);
74-
$ok = (!file_exists($file) || @unlink($file) || !file_exists($file)) && $ok;
74+
$ok = (!file_exists($file) || $this->doUnlink($file) || !file_exists($file)) && $ok;
7575
}
7676

7777
return $ok;
@@ -122,7 +122,12 @@ public function __destruct()
122122
parent::__destruct();
123123
}
124124
if (null !== $this->tmp && file_exists($this->tmp)) {
125-
unlink($this->tmp);
125+
$this->doUnlink($this->tmp);
126126
}
127127
}
128+
129+
protected function doUnlink($file)
130+
{
131+
return @unlink($file);
132+
}
128133
}

0 commit comments

Comments
 (0)