Метод deleteItem класса Cache
Метод deleteItem класса Cache удаляет
элемент кэша по указанному ключу. Первым
параметром передаётся ключ элемента, который
нужно удалить. Метод возвращает bool:
true, если элемент был удалён, и
false в противном случае.
Синтаксис
public function deleteItem(string $key): bool
Пример
Давайте сохраним элемент в кэш, а затем удалим
его методом deleteItem:
<?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
{
$cache->get('article_key', function () {
return 'article';
});
$res = $cache->deleteItem('article_key');
return new Response(var_export($res, true));
}
}
?>
Результат выполнения кода:
true
Пример
Давайте попробуем удалить элемент, которого нет в кэше:
<?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
{
$res = $cache->deleteItem('missing_key');
return new Response(var_export($res, true));
}
}
?>
Результат выполнения кода:
false
Пример
Давайте сохраним несколько элементов и удалим только один из них:
<?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
{
$cache->get('key_one', function () {
return 'abcde';
});
$cache->get('key_two', function () {
return 'hello';
});
$cache->deleteItem('key_one');
$res = [
$cache->getItem('key_one')->isHit(),
$cache->getItem('key_two')->isHit(),
];
return new Response(var_export($res, true));
}
}
?>
Результат выполнения кода:
[false, true]
Смотрите также
-
класс
Cache,
который управляет элементами кэша -
метод
delete,
который удаляет элемент по ключу -
метод
deleteItems,
который удаляет несколько элементов сразу -
метод
getItem,
который возвращает элемент кэша по ключу