MasterSlaveFeature How-To

Eu tenho atualmente meus modelos de Db usando AbstractTableGateway e todas as minhas consultas select / insert / update / delete estão funcionando muito bem. Mas agora eu gostaria de adicionar o MasterSlaveFeature e estou um pouco confuso sobre como fazer isso. A documentação não dá exatamente um bom exemplo:

http://zf2.readthedocs.org/en/latest/modules/zend.db.table-gateway.html#tablegateway-features

Atualmente tenho esta configuração:

namespace Login\Model;

use Zend\Db\TableGateway\Feature\MasterSlaveFeature;
use Zend\Db\TableGateway\Feature\FeatureSet;
use Zend\Db\TableGateway\AbstractTableGateway;
use Zend\Db\Sql\Select;
use Zend\Db\Sql\Expression;

class Passport extends AbstractTableGateway
{
public function __construct($adapter, $slave)
{
    $this->table = 'passport';

    $this->adapter = $adapter;

    $this->featureSet = new FeatureSet();
    $this->featureSet->addFeature(new MasterSlaveFeature($slave));

    $this->initialize();
}

public function Profile($employeeid)
{
    $result = $this->select(function (Select $select) use ($employeeid) {
        $select
            ->columns(array(
                'count' => new Expression('COUNT(*)'),
                'employeeid',
                'passwd',
                'group',
                'name',
                'status',
                'timezone',
                'timeformat',
                'locale',
                'max_search'
            ))
            ->where($this->adapter->getPlatform()->quoteIdentifier('employeeid') . ' = ' . $this->adapter->getPlatform()->quoteValue($employeeid))
            ->limit(1);
    });

    return $result->current();
}

}

Estou passando dois adaptadores $ adapter e $ slave, cada um com as mesmas tabelas, exceto que um está vazio e o outro tem dados. Baseado na documentação, eu devo trabalhar, mas sinto que estou perdendo alguma coisa aqui, mas não sei o quê.

O adaptador $ é o banco de dados mestre que possui os dados. O escravo $ é o banco de dados escravo que não possui dados.

Eu gostaria que meus SELECTs pegassem os dados do $ slave (que atualmente não tem dados) e Insert / Update / Delete deveria ir para o $ adapter.

Alguém pode me ajudar a descobrir isso? Obrigado

questionAnswers(1)

yourAnswerToTheQuestion