jdwx/array-cache

使用内存数组实现的PSR CacheInterface的简单实现。

v1.0.0 2024-04-16 20:59 UTC

This package is auto-updated.

Last update: 2024-09-16 21:55:25 UTC


README

这是一个使用内存数组实现的PSR CacheInterface的简单实现。

PSR Cache实现通常很重。它们可以提供大量用户可能不需要的后端选项,或者可能与用户未使用的特定框架紧密相关。

这个库旨在提供一个简单、轻量级且(几乎)无依赖的PSR缓存实现,可以用作默认值或占位符。

例如,在需要缓存但实现将由库用户选择的库中,这很有用。它也可以用作开发依赖项,为测试提供缓存实现。

缓存有一个经过充分测试的TTL实现,具有微秒级精度,因此如果您将某个内容设置为在1秒后过期,它将在1秒后过期,而不是0-2秒。

缓存可以使用JSON字符串或数据数组进行预填充。它还支持JSON序列化,因此如果需要,您可以将缓存持久化或检查其内容。(也适用于测试。)

要求

此库需要PHP 8.0或更高版本。psr/simple-cache是唯一的运行时依赖项。

安装

composer require jdwx/array-cache

用法

ArrayCache类实现了PSR-16 CacheInterface

此外,它还可以预加载数据

use JDWX\ArrayCache\ArrayCache;


$cache = new ArrayCache([ 'foo' => 'bar', 'baz' => 'qux' ]);

它可以序列化为JSON,这将保留TTL

$cache = new ArrayCache();
$cache->set( 'foo', 'bar' );
$cache->set( 'baz', 'qux', 5 );
$json = json_encode($cache);

它还可以预加载JSON

$st = '{"foo":"bar","baz":"qux"}';
$cache = new ArrayCache($st);
assert( $cache->get('foo') === 'bar' );
assert( $cache->get('baz') === 'qux' );

// or

$cache = new ArrayCache();
$cache->set( 'foo', 'bar' );
$cache->set( 'baz', 'qux', 5 );
$cache->set( 'quux', 'corge' );

$st = json_encode($cache);

$cache = new ArrayCache($st);
assert( $cache->get('foo') === 'bar' );

导入和导出JSON都会删除过期的条目。

稳定性

此库是稳定的,并具有完整的单元测试套件。它被认为适合在其问题域内用于生产。即,不要在应该使用Redis或symfony/cache的地方使用此库。

历史

此库是在2024年创建的,因为(其他方面出色的)cache/array-adapter不再维护。