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

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

Метод clear класса Cache полностью удаляет все записи из кэш-хранилища. Он не принимает параметров и возвращает bool: значение true в случае успешной очистки и false при ошибке. Метод очищает весь пул кэша, связанный с текущим адаптером, включая все ключи и их значения. Если нужно удалить только одну запись, используйте метод delete.

Синтаксис

public function clear(): bool

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Cache\Adapter\FilesystemAdapter; class CacheController extends AbstractController { #[Route('/cache/clear', name: 'cache_clear')] public function clear(): Response { $cache = new FilesystemAdapter(); $item1 = $cache->getItem('key1'); $item1->set('value1'); $cache->save($item1); $item2 = $cache->getItem('key2'); $item2->set('value2'); $cache->save($item2); $res = $cache->clear(); return new Response(var_export($res, true)); } } ?>

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

true

Пример

Давайте проверим, что после вызова clear сохранённые ранее элементы действительно исчезли:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Cache\Adapter\FilesystemAdapter; class CacheController extends AbstractController { #[Route('/cache/clear-check', name: 'cache_clear_check')] public function clearCheck(): Response { $cache = new FilesystemAdapter(); $item = $cache->getItem('user'); $item->set('hello'); $cache->save($item); $cache->clear(); $after = $cache->getItem('user'); return new Response(var_export($after->isHit(), 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\Component\Cache\Adapter\ArrayAdapter; use Symfony\Component\Cache\Adapter\TagAwareAdapter; class CacheController extends AbstractController { #[Route('/cache/clear-tagged', name: 'cache_clear_tagged')] public function clearTagged(): Response { $cache = new TagAwareAdapter(new ArrayAdapter()); $item = $cache->getItem('article'); $item->set('abcde'); $item->tag('articles'); $cache->save($item); $res = $cache->clear(); return new Response(var_export($res, true)); } } ?>

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

true

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

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