使用全套参数启动 CDbConnection

Initiate CDbConnection with full set of parameters

我需要启动另一个(在默认连接旁边)数据库连接,我想以完全相同的方式执行此操作,就像 Yii 进行配置一样。 IE。为它提供配置数组:

array
(
    'connectionString'=>'mysql:host=localhost;dbname=dbname',
    'charset'=>'utf8',
    'username'=>'username',
    'password'=>'password',
    'emulatePrepare'=>true
)

可以肯定的是,所有 CDbConnection 的属性都将被正确设置。

但是,CDbConnection::__construct 只接受 $dns$username$password,不接受其他任何东西。

到目前为止,我发现的唯一方法是使用空值启动 CDbConnection 并遍历配置数组键并逐个设置:

$db = new CDbConnection();

foreach($config as $key->$value) {
    $db->$key = $value;
}

$db->active = true;

但是,我觉得应该有更好的方法。