Время жизни по умолчанию в компоненте кэша

Мне нужно настроить время жизни по умолчанию из адаптера кэша, но происходит что-то странное, следующее не работает !? : /

use Symfony\Component\Cache\Adapter\FilesystemAdapter;

// in seconds; applied to cache items that don't define their own lifetime
// 0 means to store the cache items indefinitely (i.e. until the files are deleted)
$cache = new FilesystemAdapter('my_namespace', 5); // <-- default lifetime 5 seconds
$latestNews = $cache->getItem('latest_news');

if (!$latestNews->isHit()) {
$news = ['title' => '...', 'createdAt' => (new \DateTime())->format('Y-m-d H:i:s')];
$cache->save($latestNews->set($news));
} else {
$news = $latestNews->get();
}

Ссылка http://symfony.com/doc/current/components/cache/cache_pools.html#filesystem-cache-adapter

В первый раз содержимое кэшированного файла показывает:

2147483647 <-- 2038-01-18 22:14:07 :/ ?
latest_news
a:2:{s:5:"title";s:3:"...";s:9:"createdAt";s:19:"2016-10-07 09:16:50";}

и, конечно, этот элемент не истекает через 5 секунд: / (я очистил каталог кеша вручную).

С другой стороны, если мы используем $latestNews->expiresAfter(5); все отлично работает

1475849350 <-- 2016-10-07 10:09:10 \o/ OK
latest_news
a:2:{s:5:"title";s:3:"...";s:9:"createdAt";s:19:"2016-10-07 10:09:05";}

Ссылка http://symfony.com/doc/current/components/cache/cache_items.html#cache-item-expiration

5 секунд после истечения срока действия предмета.

Я проверил это с Symfony\Component\Cache\Adapter\ApcuAdapter и возникает та же проблема тоже.


Что происходит с временем жизни по умолчанию (параметр конструктора) в адаптерах кэша? Я что-то здесь упускаю: /?

1

Решение

Это старая проблема [Cache] Исправлено игнорирование времени жизни по умолчанию. которые влияют на версию фреймворка до 3.1

Обновление платформы Symfony должно исправить это.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]