yii1tech / tagged-cache
为Yii1应用程序提供支持标签的缓存
1.0.0
2023-08-09 13:37 UTC
Requires
- php: >=7.1
- yiisoft/yii: ~1.1.0
Requires (Dev)
- phpunit/phpunit: ^6.0 || ^7.0 || ^8.0 || ^9.3 || ^10.0.7
This package is auto-updated.
Last update: 2024-09-09 16:01:55 UTC
README
Yii1 标签感知缓存扩展
此扩展为Yii1提供了标签感知缓存。
有关许可信息,请检查LICENSE文件。
安装
安装此扩展的首选方法是通过composer。
运行
php composer.phar require --prefer-dist yii1tech/tagged-cache
或
"yii1tech/tagged-cache": "*"
将其添加到您的composer.json文件的"require"部分。
用法
此扩展为Yii1提供标签感知缓存。标签允许您将缓存项目组织成组,每组可以单独清除。此扩展引入了\yii1tech\cache\tagged\TagAwareCacheContract
接口,它扩展了Yii标准的\ICache
,在保存数据到缓存时添加了额外的标签指定参数。
应用程序配置示例
<?php return [ 'components' => [ 'cache' => [ 'class' => \yii1tech\cache\tagged\MemCache::class, // implements `\yii1tech\cache\tagged\TagAwareCacheContract` 'servers' => [ [ 'host' => 'memcache.server', 'port' => 11211, 'weight' => 100, ], ], ], // ... ], // ... ];
您可以将缓存项目标签列表作为额外参数传递给get()
和add()
方法。例如
<?php $cacheKey = 'example-cache-key'; $value = Yii::app()->cache->get($cacheKey); if ($value === false) { $value = Yii::app()->db->createCommand('SELECT ...')->query(); // some heave SQL query. Yii::app()->cache->set( $cacheKey, // cache key $value, // value to be cached 3600, // cache expiration null, // dependency, empty in our case ['database', 'main'] // list of cache tags. ); }
您可以使用\yii1tech\cache\tagged\TagAwareCacheContract::invalidateTags()
方法清除与特定标签关联的所有缓存项。例如
<?php Yii::app()->cache->invalidateTags(['database']);
此扩展提供了一些内置的缓存驱动程序,支持标签
请参阅特定存储类以获取更多详细信息。