Multiple database connections in Phalcon PHP Framework
<?php
return new \Phalcon\Config([
'databases' => [
'default' => 'master',
'master' => [
'adapter' => 'Mysql',
'host' => 'localhost',
'username' => 'root',
'password' => 'root',
'dbname' => 'phalcon',
'persistent' => true,
'charset' => 'utf8'
],
'postgres' => [
'adapter' => 'Postgresql',
'host' => 'localhost',
'username' => 'postgres',
'password' => 'postgres',
'dbname' => 'phalcon',
'persistent' => true,
'charset' => 'utf8'
],
],
]);<?php
//...
protected $connection;
public function initialize()
{
$defaultConnection = $this->di->get('config')
->get('databases')
->get('default');
$this->connection = $this->di->get($defaultConnection);
}<?php
//...
foreach ($config->databases as $db => $cred) {
$this->di->set($db, function () use ($cred) {
$adaptor = "\\Phalcon\\Db\\Adapter\\Pdo\\{$cred->adapter}";
return new $adaptor([
'host' => $cred->host,
'username' => $cred->username,
'password' => $cred->password,
'dbname' => $cred->dbname
]);
});
}
//...