Можно попытаться соединиться с одним из известных веб-сайтов по порту, который не может быть доступным снаружи - 200, например. Большинство брандмауэров работает в режиме DROP, и он моделирует тайм-аут для Вас.
Объект типа 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();
Как насчет расширяемого базового класса, который выполняет запуск?
class My_Db_Table extends Zend_Db_Table
{
function init()
{
if (....) {
// set the default adaptor to the write-DB-master
}
parent::init();
}
}
// all your models then extend My_Db_Table instead of Zend_Db_Table