Адаптер 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,
который хранит кэш в файлах