J'écris une application qui nécessite que le commutateur Maître/Esclave se produise dans la couche d'application. Comme c'est le cas maintenant, j'instancie un objet Zend_Db_Table à la création du mappeur, puis setDefaultAdapter à l'esclave.Commutateur Maître/Esclave dans la couche d'application Zend Framework
maintenant à l'intérieur de la base mappeur classe, j'ai la méthode suivante:
public function useWriteAdapter()
{
if(Zend_Db_Table_Abstract::getDefaultAdapter() != $this->_writeDb)
{
Zend_Db_Table_Abstract::setDefaultAdapter($this->_writeDb);
$this->_tableGateway = new Zend_Db_Table($this->_tableName);
}
}
je besoin d'un test de cohérence à ce sujet. Je ne pense pas que les frais généraux sont trop élevés, je soupçonne juste qu'il doit y avoir un meilleur moyen.
Je devrais toujours être capable de changer l'adaptateur de DB à la volée, donc je ne suis pas sûr que cela fonctionnerait. – Pro777