shasoft / psr-cache
v1.1.1
2024-06-09 11:03 UTC
Requires
- psr/cache: ^3
- shasoft/filesystem: *
Requires (Dev)
README
基于 PSR-16 的工作于缓存
该包实现了两个类
- Shasoft\PsrCache\CacheItemPool 实现 Psr\Cache\CacheItemInterface - 缓存对象工作类
- Shasoft\PsrCache\PsrCache 实现 Psr\Cache\CacheItemInterface - 缓存元素类
// Создать объект для работы с КЭШем $cache = new Shasoft\PsrCache\CacheItemPool( new Shasoft\PsrCache\Adapter\CacheAdapter() ); // Получить элемент КЭШа $itemCache = cache->getItem('myKey'); // Если элемент не найден в КЖШе if( !$itemCache->isHit() ) { // то установить значение $itemCache->set('valueCacheItem'); // и сохранить в КЭШ $cache->save($itemCache); } // Вывести значение echo $itemCache->get();
作为对象工作类的构造函数参数,它接受一个适配器对象。目前可用的适配器有:
- Shasoft\PsrCache\Adapter\CacheAdapterArray - 在 php 数组中进行缓存
- Shasoft\PsrCache\Adapter\CacheAdapterFilesystem - 在文件系统中进行缓存
为了创建自己的适配器,需要创建一个继承自 Shasoft\PsrCache\Adapter\CacheAdapter 的类,并定义其抽象方法。
abstract class CacheAdapter { // Получить значения (Если $has=true, то только проверить наличие значения. // Т.е. вернуть либо false, либо true) abstract public function get(array $keys, bool $has): array; // Удалить указанные значения abstract public function delete(array $keys): bool; // Удалить все значения abstract public function clear(): bool; // Сохранить элементы ['key1'=>'value11, 'key2'=>'value12, ...] // Возвращает список ключей успешно сохраненных элементов abstract public function save(array $items): array; }