Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitdf6dddb

Browse files
[Cache] Unconditionally use PhpFilesAdapter for system pools
1 parent50c4384 commitdf6dddb

File tree

10 files changed

+20
-41
lines changed

10 files changed

+20
-41
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
namespaceSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler;
1313

14-
useSymfony\Component\Cache\Adapter\AbstractAdapter;
1514
useSymfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
1615
useSymfony\Component\DependencyInjection\ContainerBuilder;
1716
useSymfony\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(newReference('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 =newParameter('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
<tagname="cache.pool" />
3636
</service>
3737

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

4949
<serviceid="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
publicstaticfunctioncreateSystemCache($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
publicfunction__construct(string$namespace ='',int$defaultLifetime =0,string$directory =null)
2626
{
27-
if (!static::isSupported()) {
28-
thrownewCacheException('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
publicfunction__construct(string$namespace ='',int$defaultLifetime =0,string$directory =null)
2626
{
27-
if (!static::isSupported()) {
28-
thrownewCacheException('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
publicfunctioncreateCachePool()
2727
{
28-
if (!PhpFilesAdapter::isSupported()) {
29-
$this->markTestSkipped('OPcache extension is not enabled.');
30-
}
31-
3228
returnnewPhpFilesAdapter('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
publicfunctioncreateSimpleCache()
2727
{
28-
if (!PhpFilesCache::isSupported()) {
29-
$this->markTestSkipped('OPcache extension is not enabled.');
30-
}
31-
3228
returnnewPhpFilesCache('sf-cache');
3329
}
3430

‎src/Symfony/Component/Cache/Traits/PhpFilesTrait.php‎

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,13 @@ trait PhpFilesTrait
2828
private$includeHandler;
2929
private$zendDetectUnicode;
3030

31+
privatestatic$startTime;
32+
3133
publicstaticfunctionisSupported()
3234
{
33-
returnfunction_exists('opcache_invalidate') &&ini_get('opcache.enable');
35+
self::$startTime =self::$startTime ??$_SERVER['REQUEST_TIME'] ??time();
36+
37+
return\function_exists('opcache_invalidate') &&ini_get('opcache.enable') && ('cli' !== \PHP_SAPI ||ini_get('opcache.enable_cli'));
3438
}
3539

3640
/**
@@ -40,7 +44,7 @@ public function prune()
4044
{
4145
$time =time();
4246
$pruned =true;
43-
$allowCompile ='cli' !==PHP_SAPI ||ini_get('opcache.enable_cli');
47+
$allowCompile =self::isSupported();
4448

4549
set_error_handler($this->includeHandler);
4650
try {
@@ -119,7 +123,7 @@ protected function doSave(array $values, $lifetime)
119123
{
120124
$ok =true;
121125
$data =array($lifetime ?time() +$lifetime :PHP_INT_MAX,'');
122-
$allowCompile ='cli' !==PHP_SAPI ||ini_get('opcache.enable_cli');
126+
$allowCompile =self::isSupported();
123127

124128
foreach ($valuesas$key =>$value) {
125129
if (null ===$value ||\is_object($value)) {
@@ -142,7 +146,8 @@ protected function doSave(array $values, $lifetime)
142146

143147
$data[1] =$value;
144148
$file =$this->getFile($key,true);
145-
$ok =$this->write($file,'<?php return'.var_export($data,true).';') &&$ok;
149+
// Since OPcache only compiles files older than the script execution start, set the file's mtime in the past
150+
$ok =$this->write($file,'<?php return'.var_export($data,true).';',self::$startTime -10) &&$ok;
146151

147152
if ($allowCompile) {
148153
@opcache_invalidate($file,true);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp