ecomdev / cache-key
一个库,允许您基于不同的数据格式生成缓存键。
1.1.0
2016-05-20 18:43 UTC
Requires
- php: ^5.6|>=7.0
Requires (Dev)
- henrikbjorn/phpspec-code-coverage: ^2.0
- mikey179/vfsstream: ^1.6
- phpmd/phpmd: ^2.3
- phpspec/nyan-formatters: ^1.0
- phpspec/phpspec: ^2.4
- satooshi/php-coveralls: dev-master
- squizlabs/php_codesniffer: *
This package is auto-updated.
Last update: 2024-08-27 21:18:19 UTC
README
一个库,允许您基于不同的数据格式生成缓存键。
主要组件
- 键生成器 允许基于不同的数据输入生成缓存键
- 键转换器 允许将各种 PHP 数据类型转换为键友好数据类型
- 键标准化器 标准化生成字符串中的字符,以匹配特定缓存适配器的缓存键健全性检查。
安装
composer require ecomdev/cache-key
使用
自动非字母数字字符编码
use EcomDev\CacheKey\Normalizer\EncodeNormalizer; use EcomDev\CacheKey\Generator; $generator = new Generator(new EncodeNormalizer()); $generator->generate('some_bad_#^.;:/\\_character'); // Generates "some_bad_235e2e3b3a2f5c_character"
多个标准化器
use EcomDev\CacheKey\Normalizer\EncodeNormalizer; use EcomDev\CacheKey\Normalizer\LengthNormalizer; use EcomDev\CacheKey\NormalizerChain; use EcomDev\CacheKey\Generator; $normalizer = new NormalizerChain([ new EncodeNormalizer(), new LengthNormalizer(16) ]); $generator = new Generator($normalizer); $generator->generate('some_bad_#^.;:/\\_character'); // Generates "some_bad_235e2e3b3a2f5c_character"
使用转换器进行键值映射
use EcomDev\CacheKey\Normalizer\EncodeNormalizer; use EcomDev\CacheKey\Converter\KeyValueConverter; use EcomDev\CacheKey\Converter\ScalarConverter; use EcomDev\CacheKey\Generator; $generator = new Generator( new EncodeNormalizer(), new KeyValueConverter(new ScalarConverter()) ); $generator->generate([ 'some-key' => 'some-value', 'another-key' => 'another-value' ]); // Generates "some-key_some-value_another-key_another-value"
Cache Key Info Provider 使用
您的自定义缓存模型
class YourCustomModel implements EcomDev\CacheKey\InfoProviderInterface { public function getCacheKeyInfo() { return [ 'some-key' => 'some-value', 'another-key' => 'another-value' ]; } }
在键生成中的使用
use EcomDev\CacheKey\Normalizer\EncodeNormalizer; use EcomDev\CacheKey\Converter\KeyValueConverter; use EcomDev\CacheKey\Converter\ScalarConverter; use EcomDev\CacheKey\Generator; $object = new YourCustomModel(); $generator = new Generator( new EncodeNormalizer(), new KeyValueConverter(new ScalarConverter()) ); $generator->generate($object); // Generates "some-key_some-value_another-key_another-value"
PSR-6 兼容的键生成
use EcomDev\CacheKey\Normalizer\Psr6Normalizer; use EcomDev\CacheKey\Generator; $generator = new Generator(Psr6Normalizer::create()); $generator->generate('give_me-psr-6-compatible_#^.;:/\\-key'); // Generates "give_me-psr-6-compatible_235e.3b3a2f5c-key"
前缀键生成
use EcomDev\CacheKey\Normalizer\Psr6Normalizer; use EcomDev\CacheKey\Generator; $generator = new Generator(Psr6Normalizer::create(), null, 'prefix-'); $generator->generate('some-non-prefixed-key'); // Generates "prefix-some-non-prefixed-key"
贡献
基于 develop 分支创建 pull request