![](/img/trans.png)
[英]memcached, APCu or redis as cache for Symfony and Doctrine
[英]Doctrine Memcached: Clear cache after save record
保存记录后,Doctrine 1. *是否清除缓存?
似乎没有。 我可以在某个地方做吗?
不,不是。 每次保存对象时,都应手动清除缓存。
如文档中所述 ,最好的方法是使用event(特别是postSave
event)来实现:
// lib/model/doctrine/User.class.php
class User extends BaseUser
{
// ...
public function postSave($event)
{
$cacheDriver = $this->getTable()->getAttribute(Doctrine_Core::ATTR_RESULT_CACHE);
$cacheDriver->deleteByPrefix('users_');
}
}
您还可以构建一个自定义类来管理缓存清除( 如此处所述 ):
<?php
class myCache{
public static function clearRegexMatches($regex){
Doctrine_Manager::getInstance()
->getAttribute(Doctrine_Core::ATTR_RESULT_CACHE)
->deleteByRegex($regex);
}
public static function clearOne($name){
Doctrine_Manager::getInstance()
->getAttribute(Doctrine_Core::ATTR_RESULT_CACHE)
->delete($name);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.