openclassrooms / cache
扩展 Doctrine Cache 功能的缓存库
v1.1.0
2024-07-29 13:10 UTC
Requires
- php: >=8.2
- doctrine/cache: 2.2.0
Requires (Dev)
- phpunit/phpunit: ~3.7
This package is auto-updated.
Last update: 2024-09-05 15:16:43 UTC
README
Cache 为 Doctrine Cache 实现添加功能
- 默认生存期
- 使用命名空间获取数据
- 使用命名空间保存数据
- 通过命名空间策略进行缓存失效
- CacheProvider 构建器
安装
安装 Cache 最简单的方式是通过 composer。
创建以下 composer.json
文件并运行 php composer.phar install
命令进行安装。
{ "require": { "openclassrooms/cache": "*" } }
<?php require 'vendor/autoload.php'; use OpenClassrooms\Cache\Cache\Cache; //do things
使用方法
实例化
OC Cache 需要一个 Doctrine CacheProvider 来进行实例化。
$cacheProvider = new ArrayCache(); $cache = new Cache($cacheProvider);
可以使用 Cache 构建器。
// Default builder, build a cache using ArrayCache Provider $cache = new CacheBuilderImpl()->build(); // Using a CacheProvider $cache = new CacheBuilderImpl() ->withCacheProvider($redisCache) ->build(); // Optional default lifetime $cache = new CacheBuilderImpl() ->withCacheProvider($redisCache) ->withDefaultLifetime(300) ->build();
默认生存期
$cache->setDefaultLifetime(300); $cache->save($id, $data);
使用命名空间获取数据
$data = $cache->fetchWithNamespace($id, $namespaceId);
使用命名空间保存数据
// Namespace and life time can be null $data = $cache->saveWithNamespace($id, $data, $namespaceId, $lifeTime);
缓存失效
$cache->invalidate($namespaceId);
CacheProvider 构建器
该库提供 CacheProvider 构建器
// Memcache $cacheProvider = new CacheProviderBuilderImpl() ->create(CacheProviderType::MEMCACHE) ->withHost('127.0.0.1') ->withPort(11211) // Default 11211 ->withTimeout(1) // Default 1 ->build(); // Memcached $cacheProvider = new CacheProviderBuilderImpl() ->create(CacheProviderType::MEMCACHED) ->withHost('127.0.0.1') ->withPort(11211) // Default 11211 ->build(); // Redis $cacheProvider = new CacheProviderBuilderImpl() ->create(CacheProviderType::REDIS) ->withHost('127.0.0.1') ->withPort(6379) // Default 6379 ->withTimeout(0.0) // Default 0.0 ->build(); // Array $cacheProvider = new CacheProviderBuilderImpl() ->create(CacheProviderType::ARRAY_CACHE) ->build();