shasoft/psr-cache

PSR-16 缓存适配器

v1.1.1 2024-06-09 11:03 UTC

This package is auto-updated.

Last update: 2024-09-10 19:11:55 UTC


README

基于 PSR-16 的工作于缓存

该包实现了两个类

  1. Shasoft\PsrCache\CacheItemPool 实现 Psr\Cache\CacheItemInterface - 缓存对象工作类
  2. 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();

作为对象工作类的构造函数参数,它接受一个适配器对象。目前可用的适配器有:

  1. Shasoft\PsrCache\Adapter\CacheAdapterArray - 在 php 数组中进行缓存
  2. 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;
}