From 550c477797f9a5add5d661b78007c72e4366f37d Mon Sep 17 00:00:00 2001 From: David Grudl Date: Wed, 19 May 2010 15:29:38 +0200 Subject: [PATCH] DibiConnection::alias() refactoring --- dibi/drivers/mysql.php | 2 +- dibi/drivers/mysqli.php | 4 ++-- dibi/drivers/oracle.php | 2 +- dibi/drivers/pdo.php | 4 ++-- dibi/libs/DibiConnection.php | 11 +++++------ 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/dibi/drivers/mysql.php b/dibi/drivers/mysql.php index d9d4b730..20a8ace3 100644 --- a/dibi/drivers/mysql.php +++ b/dibi/drivers/mysql.php @@ -68,7 +68,7 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver */ public function connect(array &$config) { - DibiConnection::alias($config, 'options'); + $foo = & $config['options']; if (isset($config['resource'])) { $this->connection = $config['resource']; diff --git a/dibi/drivers/mysqli.php b/dibi/drivers/mysqli.php index 430451ef..61eb23e1 100644 --- a/dibi/drivers/mysqli.php +++ b/dibi/drivers/mysqli.php @@ -68,8 +68,8 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver */ public function connect(array &$config) { - DibiConnection::alias($config, 'options'); - DibiConnection::alias($config, 'database'); + $foo = & $config['options']; + $foo = & $config['database']; if (isset($config['resource'])) { $this->connection = $config['resource']; diff --git a/dibi/drivers/oracle.php b/dibi/drivers/oracle.php index df32a185..64129ab8 100644 --- a/dibi/drivers/oracle.php +++ b/dibi/drivers/oracle.php @@ -62,7 +62,7 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver */ public function connect(array &$config) { - DibiConnection::alias($config, 'charset'); + $foo = & $config['charset']; $this->fmtDate = isset($config['formatDate']) ? $config['formatDate'] : 'U'; $this->fmtDateTime = isset($config['formatDateTime']) ? $config['formatDateTime'] : 'U'; diff --git a/dibi/drivers/pdo.php b/dibi/drivers/pdo.php index cb09b08f..6bc3e3a0 100644 --- a/dibi/drivers/pdo.php +++ b/dibi/drivers/pdo.php @@ -57,9 +57,9 @@ class DibiPdoDriver extends DibiObject implements IDibiDriver */ public function connect(array &$config) { - DibiConnection::alias($config, 'dsn'); + $foo = & $config['dsn']; + $foo = & $config['options']; DibiConnection::alias($config, 'resource', 'pdo'); - DibiConnection::alias($config, 'options'); if ($config['resource'] instanceof PDO) { $this->connection = $config['resource']; diff --git a/dibi/libs/DibiConnection.php b/dibi/libs/DibiConnection.php index a7225c5f..78555626 100644 --- a/dibi/libs/DibiConnection.php +++ b/dibi/libs/DibiConnection.php @@ -193,15 +193,14 @@ class DibiConnection extends DibiObject * @param string alias key * @return void */ - public static function alias(&$config, $key, $alias=NULL) + public static function alias(&$config, $key, $alias) { - if (isset($config[$key])) return; + $foo = & $config; + foreach (explode('|', $key) as $key) $foo = & $foo[$key]; - if ($alias !== NULL && isset($config[$alias])) { - $config[$key] = $config[$alias]; + if (!isset($foo) && isset($config[$alias])) { + $foo = $config[$alias]; unset($config[$alias]); - } else { - $config[$key] = NULL; } }