Метод expiresAt
Метод expiresAt класса CacheItem
устанавливает момент времени, после которого
элемент кэша считается устаревшим. В отличие
от метода expiresAfter, который задаёт
относительный интервал, данный метод принимает
абсолютное время в виде объекта
DateTimeInterface. Метод возвращает
сам объект CacheItem, что позволяет
выстраивать цепочку вызовов.
Синтаксис
$item->expiresAt(?DateTimeInterface $expiration)
Пример
Давайте создадим элемент кэша и установим время его жизни до конкретной даты:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Contracts\Cache\CacheInterface;
use Symfony\Component\Cache\CacheItem;
class CacheController extends AbstractController
{
public function index(CacheInterface $cache): Response
{
$item = new CacheItem();
$item->set('hello');
$item->expiresAt(new \DateTime('+1 hour'));
$cache->save($item);
return new Response($item->get());
}
}
?>
Результат выполнения кода:
"hello"
Пример
Давайте передадим конкретную дату
с помощью объекта DateTime:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Contracts\Cache\CacheInterface;
use Symfony\Component\Cache\CacheItem;
class CacheController extends AbstractController
{
public function index(CacheInterface $cache): Response
{
$item = new CacheItem();
$item->set('abcde');
$item->expiresAt(new \DateTime('2027-01-01 00:00:00'));
$cache->save($item);
return new Response($item->get());
}
}
?>
Результат выполнения кода:
"abcde"
Смотрите также
-
класс
CacheItem,
который представляет элемент кэша -
метод
expiresAfter,
который задаёт относительное время жизни -
метод
set,
который записывает значение в элемент -
метод
save,
который сохраняет элемент в кэш