davidecesarano/embryo-cache

PSR-16 简单缓存实现,使用 PSR Stream。

1.0.1 2021-01-08 15:39 UTC

This package is auto-updated.

Last update: 2024-09-08 23:50:27 UTC


README

一个最小的PSR-16缓存实现,使用文件流系统。

要求

安装

使用Composer

$ composer require davidecesarano/embryo-cache

使用方法

设置ResponseEmitter对象。之后,通过传递缓存目录路径来设置Cache对象。

use Embryo\Cache\Cache;
use Embryo\Http\Emitter\Emitter;
use Embryo\Http\Factory\ResponseFactory;

$emitter   = new Emitter;
$response  = (new ResponseFactory)->createResponse(200);
$cachePath = __DIR__.DIRECTORY_SEPARATOR.'cache';
$cache     = new Cache($cachePath);

if (!$cache->has('test')) {
    $cache->set('test', 'Hello World!', 3600);
}

$body = $response->getBody();
$body->write($cache->get('test', 'Default value!'));
$response = $response->withBody($body);

$emitter->emit($response);

在这个示例中,我们检查项目缓存test是否存在;如果不存在,我们使用值Hello World!和生存时间(TTL)为3600秒设置test项目缓存。之后,如果项目缓存不存在,我们获取默认值的test项目缓存。

示例

您可以通过内置的PHP服务器快速测试此功能,访问https://:8000

$ cd example
$ php -S localhost:8000

选项

setDefaultTtl($ttl)

您可以为默认过期TTL时间设置。$ttl必须是一个整数或一个DateInterval对象。

集合

检索数据

您可以从缓存中检索项目,并且您也可以将默认值作为第二个参数传递给get方法。

$cache->get('key', 'default');

存储数据

使用set方法可以设置新的值到缓存中,可以可选地设置过期TTL时间。

$cache->set('key', 'value', 3600);

删除数据

delete方法将从缓存中删除数据。如果您想从缓存中删除所有数据,您可以使用clear方法。

$cache->delete('key');
$cache->clear();

检索多个数据

您可以从缓存中检索多个项目,并且您也可以将默认值作为第二个参数传递给getMultiple方法。

$cache->getMultiple(['key1', 'key2'], 'default');

存储多个数据

setMultiple方法可以用于将多个值设置到缓存中,可以可选地设置过期TTL时间。

$cache->setMultiple([
    'key1' => 'value',
    'key2' => 'value'
], 3600);

删除多个数据

deleteMultiple方法将从缓存中删除项目。

$cache->deleteMultiple(['key1', 'key2']);

确定缓存中是否存在项目

要确定项目是否存在于缓存中,您可以使用has方法。如果项目存在并且不是false,则has方法返回true

if ($cache->has('key')) {
    //...
}