Метод set класса CacheItem
Метод set класса CacheItem устанавливает значение для элемента кэша.
Первым параметром передаётся значение, которое необходимо сохранить.
Метод возвращает сам объект CacheItem, что позволяет использовать цепочку вызовов
для настройки других параметров, например, времени жизни.
Синтаксис
$item->set(value)
Пример
Давайте создадим элемент кэша, установим ему значение и сохраним в кэш:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Contracts\Cache\CacheInterface;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(CacheInterface $cache): Response
{
$item = $cache->getItem('article_key');
$item->set('article');
$cache->save($item);
return new Response($item->get());
}
}
?>
Результат выполнения кода:
article
Пример
Давайте установим значение и сразу зададим время жизни элемента кэша:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Contracts\Cache\CacheInterface;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(CacheInterface $cache): Response
{
$item = $cache->getItem('article_key');
$item->set('hello')->expiresAfter(3600);
$cache->save($item);
return new Response($item->get());
}
}
?>
Результат выполнения кода:
hello
Пример
Давайте сохраним в кэш массив значений:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Contracts\Cache\CacheInterface;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(CacheInterface $cache): Response
{
$item = $cache->getItem('article_list');
$item->set(['article 1', 'article 2', 'article 3']);
$cache->save($item);
return new Response(implode(', ', $item->get()));
}
}
?>
Результат выполнения кода:
article 1, article 2, article 3
Смотрите также
-
класс
CacheItem,
который представляет элемент кэша -
метод
get,
который возвращает значение элемента кэша -
метод
save,
который сохраняет элемент кэша -
метод
expiresAfter,
который задаёт время жизни элемента кэша