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

Адаптер ArrayAdapter

Адаптер ArrayAdapter хранит элементы кэша в обычном PHP-массиве. Данные живут только во время выполнения текущего запроса и не сохраняются между запросами. Адаптер удобен для тестирования и для временного кэширования внутри одного запроса. Первым параметром передаётся стартовый массив значений кэша.

Синтаксис

new ArrayAdapter(array $values = [])

Пример

Давайте создадим адаптер и сохраним в него значение по ключу 'user':

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentCacheAdapterArrayAdapter; class CacheController extends AbstractController { public function index(): Response { $cache = new ArrayAdapter(); $item = $cache->getItem('user'); $item->set('abcde'); $cache->save($item); $res = $cache->getItem('user')->get(); return new Response($res); } } ?>

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

abcde

Пример

Давайте передадим стартовые значения кэша прямо в конструктор адаптера:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentCacheAdapterArrayAdapter; class CacheController extends AbstractController { public function index(): Response { $cache = new ArrayAdapter([ 'user' => 'abcde', 'article' => 'hello', ]); $res = $cache->getItem('user')->get(); $res .= ' ' . $cache->getItem('article')->get(); return new Response($res); } } ?>

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

abcde hello

Пример

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

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentCacheAdapterArrayAdapter; class CacheController extends AbstractController { public function index(): Response { $cache = new ArrayAdapter(); $res = $cache->hasItem('user') ? 'true' : 'false'; return new Response($res); } } ?>

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

false

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

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