Pour l'intégration ZF et Doctrine voir: beberlei's zf-doctrine at GitHub
Pour activer le cache, dans votre application Bootstrap.php
:
public function _initDoctrineCache()
{
$this->bootstrap('doctrine');
$manager = Doctrine_Manager::getInstance();
$cacheDriver = null;
if (extension_loaded('memcache')) {
$servers = array(
'host' => 'localhost',
'port' => 11211,
'persistent' => true
);
$cacheDriver = new Doctrine_Cache_Memcache(array(
'servers' => $servers,
'compression' => false
)
);
} else if (function_exists('apc_add')) {
$cacheDriver = new Doctrine_Cache_Apc();
}
if (null !== $cacheDriver) {
//$manager->setAttribute(Doctrine_Core::ATTR_QUERY_CACHE, $cacheDriver);
$manager->setAttribute(Doctrine_Core::ATTR_RESULT_CACHE, $cacheDriver);
$manager->setAttribute(Doctrine_Core::ATTR_RESULT_CACHE_LIFESPAN, 120); // in seconds
}
return $cacheDriver;
}
Bien sûr, vous devez avoir apc
, memcache
et memcached
installé premier.
merci, quand j'appelle à cette fonction _initDoctrineCache? seulement première fois, chaque fois que je veux mettre en cache la requête, si vous pouvez me montrer les utilisations de cette fonction dans la mise en cache des requêtes de doctrine sql –
@Haim Cette fonction est placée dans Bootstrap, donc il s'exécute automatiquement. Pas besoin de l'appeler manuellement. – takeshin