Phalcon框架如何实现读写分离

Phalcon框架如何实现读写分离

假设你已经在DI容器里注册了俩 db services,如下:

<?php
// 主库
$di->setShared('dbWrite', function() use ($config) {
    return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
        "host" => $config->w_database->host,
        "username" => $config->w_database->username,
        "password" => $config->w_database->password,
        "dbname" => $config->w_database->name
    ));
});
//  从库VIP
$di->setShared('dbRead', function() use ($config) {
    return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
        "host" => $config->r_database->host,
        "username" => $config->r_database->username,
        "password" => $config->r_database->password,
        "dbname" =>  $config->r_database->name
    ));
});

然后在 Model 中这么处理就可以了:

<?php
class UserModel extends \Phalcon\Mvc\Model {
    public function initialize() {
        parent::initialize();
        $this->setReadConnectionService('dbRead');
        $this->setWriteConnectionService('dbWrite');
    }
}
posted @ 2015-05-17 00:11  sandea  阅读(1051)  评论(0编辑  收藏  举报