imag / simple-cache-bundle
Symfony 2 缓存包
v2.0.0
2013-09-16 10:01 UTC
Requires
- php: >=5.3.3
- symfony/symfony: >2.0
This package is auto-updated.
Last update: 2024-08-28 04:10:26 UTC
README
它为许多资源提供数据缓存。可以轻松通过其他存储方法扩展。
联系
昵称:aways IRC:irc.freenode.net - #symfony-fr
安装
- 使用 composer 下载
- 启用 Bundle
- 配置
- 使用 Bundle
- 示例
Composer
将 SimpleCacheBundle 添加到项目的 composer.json
{ "require": { "imag/simple-cache-bundle": "dev-master" } }
启用 Bundle
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new IMAG\LdapBundle\IMAGSimpleCacheBundle(), ); }
配置
#config.yml imag_simple_cache: storage_method: hdd storage: hdd: class: \IMAG\SimpleCacheBundle\Storage\HddStorage default_lifetime: 3600 extras: base_dir: /tmp cache_folder: cache_q1hU5HHt file_extension: imag.cache deep: 3 folder_length: 3
控制台
php app/console help simplecache:cache-clear
Usage:
simplecache:cache-clear [--entire-cache]
默认情况下,清除缓存不带任何参数只清除过期的引用。
使用 Bundle
注入
<service id="foo_bar.service" class="%foo_bar.service.class%"> <argument type="service" id="imag_simple_cache.cache_manager" /> </service>
方法
mixed getReference(mixed $param)
this addReference(mixed $param)
this setReferenceKey(string $key)
string getReferenceKey()
array clearCache()
array clearExpired()
注意
如果您不使用 setReferenceKey($param) 方法,存储引用键将使用以下简单过程计算:md5(serialize($param))
示例
public function __construct(\IMAG\SimpleCacheBundle\Manager\CacheManager $cache) { $this->cache = $cache; } public function getArchiveOfAppsPdf(array $applications) { $key = md5(serialize($applications)); $this->cache->setReferenceKey($key); // Because setReference have been called, this reference is searched with the key $key if ($cached = $this->cache->getReference()) { return $cached; } $zip = $this->zip->getZip(); // Because setReference have been called, this method use $key to store the $zip reference $this->cache->addReference($zip); return $zip; } public function getExample(array $applications) { $zip = $this->getZip($applications); // This reference is searched under md5(serialize($zip)) if ($cached = $this->cache->getReference($zip)) { return $cached; } // This reference is stored under md5(serialize($zip)) $this->cache->addReference($zip); return $zip; }