РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
817 of 1361 menu

Метод deleteItems класса Cache

Метод deleteItems класса Cache удаляет сразу несколько записей из кэша по массиву ключей. Первым параметром передаётся массив ключей, которые нужно удалить. Метод возвращает true, если все записи были успешно удалены, и false в противном случае. В отличие от метода delete, который удаляет одну запись по одному ключу, deleteItems позволяет за один вызов очистить сразу группу записей, что удобно при массовой инвалидации кэша.

Синтаксис

public function deleteItems(array $keys): bool

Пример

Давайте удалим несколько записей кэша по массиву ключей:

<?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 CacheController extends AbstractController { #[Route('/cache/delete-items', name: 'cache_delete_items')] public function deleteItems(CacheInterface $cache): Response { $cache->get('key1', fn () => 'article 1'); $cache->get('key2', fn () => 'article 2'); $cache->get('key3', fn () => 'article 3'); $res = $cache->deleteItems(['key1', 'key2']); var_dump($res); return new Response('done'); } } ?>

Результат выполнения кода:

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 CacheController extends AbstractController { #[Route('/cache/check-items', name: 'cache_check_items')] public function checkItems(CacheInterface $cache): Response { $cache->get('key1', fn () => 'article 1'); $cache->get('key2', fn () => 'article 2'); $cache->deleteItems(['key1', 'key2']); $res = $cache->get('key1', fn () => 'not found'); return new Response($res); } } ?>

Результат выполнения кода:

"not found"

Пример

Давайте удалим записи, среди которых есть несуществующий ключ:

<?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 CacheController extends AbstractController { #[Route('/cache/delete-mixed', name: 'cache_delete_mixed')] public function deleteMixed(CacheInterface $cache): Response { $cache->get('key1', fn () => 'article 1'); $res = $cache->deleteItems(['key1', 'unknown']); var_dump($res); return new Response('done'); } } ?>

Результат выполнения кода:

true

Смотрите также

  • класс Cache,
    который предоставляет доступ к кэшу
  • метод deleteItem,
    который удаляет одну запись кэша по ключу
  • метод getItems,
    который возвращает несколько записей по массиву ключей
  • метод clear,
    который полностью очищает весь кэш
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить