modmore / revolution-cache
MODX Revolution Cache Provider 访问的 PSR-6 缓存实现。
This package is auto-updated.
Last update: 2024-09-23 02:36:51 UTC
README
MODX Revolution Cache Provider 访问的 PSR-6 缓存实现。
此功能可用于针对 PSR-6 缓存标准编写自定义应用程序代码,同时与标准 MODX 2.2+ 缓存管理器集成。这提供了访问 MODX 提供的不同缓存实现(如文件/memcached 等),并通过 MODX 系统设置进行分区配置。
RevolutionCache 为 Commerce 开发,但已提取为独立的 composer 包,以便他人受益。
安装
通过 Composer 安装 RevolutionCache
composer require modmore/revolution-cache
许可证
MIT
用法
以下是一个简单示例,说明如何使用此适配器。
require_once '/path/to/vendor/autoload.php'; $pool = new \modmore\RevolutionCache\Pool($modx); // Do some cache stuff $item = $pool->getItem('my_value'); if ($item->isHit()) { echo 'Your number is ' . $item->get() . ' and was loaded from cache.'; } else { $value = mt_rand(1, 9999); $item->set($value); if ($pool->save($item)) { echo 'Your number is ' . $value . ' and has been stored in the cache.'; } else { echo 'Your number is ' . $value . ' but could not be written to cache'; } }
要使用除 default
之外的分区,您可以在创建 $pool
实例时将其指定为第二个选项
$pool = new \modmore\RevolutionCache\Pool($modx, 'my_custom_partition');
构造函数上的第三个 $options
属性可以用于指定 xPDOCache 选项,如默认过期日期、缓存处理程序和缓存格式,但建议通过 MODX 系统设置进行配置。
注意
- 此缓存实现不支持延迟保存:
$pool->saveDeferred()
与$pool->save()
相同,且$pool->commit()
总是 true。 - 此实现不支持 PHP-Cache 项目扩展的 PSR-6,如标签、命名空间或层次结构。
- 此实现支持类似 PHP-Cache 项目的命名空间 的功能,通过支持 MODX 中称为 Cache Partitions 或 Cache Providers 的内容。在创建 Pool 实例时,您将分区名称作为第二个参数提供。不同的分区可能具有自己的默认过期时间、缓存驱动程序和存储格式。这些通常在 MODX 系统设置中配置,但也可能通过构造函数的第三个
$options
属性传递。 - modCacheManager 支持目录(如
users/10/messages
)的缓存键,但是/
是 PSR-6 的保留字符,因此您不能使用此缓存实现。相反,您可以使用不同的分区。
测试
此实现遵循 PSR-6 规范,并通过 PHP-Cache 项目提供的 PSR-6 集成测试 进行测试。
要运行这些测试或为 RevolutionCache 贡献
- 安装 MODX
- 在此项目的根目录中创建一个
config.core.php
文件,指向 MODX 核心文件夹。config.core.sample.php
中有一个示例。 - 确保使用
composer install
安装依赖项。 - 从项目根目录运行
phpunit
。