gpt4 book ai didi

php - Zend Framework应用层Master/Slave切换

转载 作者:可可西里 更新时间:2023-11-01 12:57:17 25 4
gpt4 key购买 nike

我正在编写一个应用程序,需要在应用程序层内进行主/从切换。现在,我在创建映射器时实例化一个 Zend_Db_Table 对象,然后将 DefaultAdapter 设置到从属对象。

现在在基本映射器类中,我有以下方法:

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);
}
}

我需要对此进行完整性检查。我不认为开销太多,我只是怀疑一定有更好的方法。

最佳答案

Zend_Db_Table_Row_Abstract 类型的对象会记住生成它的 Table 对象。但是您可以在调用 save() 之前更改关联的表。

$readDb = Zend_Db::factory(...);  // replica
$writeDb = Zend_Db::factory(...); // master
Zend_Db_Table::setDefaultAdapter($readDb);

$myReadTable = new MyTable(); // use default adapter
$myWriteTable = new MyTable($writeDb);

$row = $myTable->find(1234)->current();

$row->column1 = 'value';

$row->setTable($myWriteTable);

$row->save();

关于php - Zend Framework应用层Master/Slave切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1826798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com