From 62f8c47410320fb87b760a23681f105e1c59cdb9 Mon Sep 17 00:00:00 2001 From: David Grudl Date: Mon, 21 Apr 2008 11:32:58 +0000 Subject: [PATCH] compatibility with Nette::Config --- dibi/dibi.php | 11 +++-------- dibi/libs/DibiConnection.php | 7 ++++++- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dibi/dibi.php b/dibi/dibi.php index 1c85e19d..633e59bb 100644 --- a/dibi/dibi.php +++ b/dibi/dibi.php @@ -161,23 +161,18 @@ class dibi /** * Creates a new DibiConnection object and connects it to specified database. * - * @param array|string connection parameters + * @param array|string|Nette::Collections::IMap connection parameters * @param string connection name * @return DibiConnection * @throws DibiException */ public static function connect($config = array(), $name = 0) { - if (class_exists(/*Nette::*/'Debug', FALSE) && /*Nette::*/Debug::isEnabled()) { + if (class_exists(/*Nette::*/'Debug', FALSE)) { /*Nette::*/Debug::addColophon(array(__CLASS__, 'getColophon')); } - if (is_array($config) || $config instanceof /*Nette::Collections::*/IMap) { - $config['name'] = $name; - } else { - $config .= '&name=' . urlencode($name); - } - return self::$connection = self::$registry[$name] = new DibiConnection($config); + return self::$connection = self::$registry[$name] = new DibiConnection($config, $name); } diff --git a/dibi/libs/DibiConnection.php b/dibi/libs/DibiConnection.php index 46de0a38..69af7fcf 100644 --- a/dibi/libs/DibiConnection.php +++ b/dibi/libs/DibiConnection.php @@ -59,9 +59,10 @@ class DibiConnection extends /*Nette::*/Object * Creates object and (optionally) connects to a database. * * @param array|string|Nette::Collections::IMap connection parameters + * @param string connection name * @throws DibiException */ - public function __construct($config) + public function __construct($config, $name = NULL) { // DSN string if (is_string($config)) { @@ -69,6 +70,9 @@ class DibiConnection extends /*Nette::*/Object } elseif ($config instanceof /*Nette::Collections::*/IMap) { $config = $config->toArray(); + + } elseif (!is_array($config)) { + throw new InvalidArgumentException('Configuration must be array, string or Nette::Collections::IMap.'); } if (!isset($config['driver'])) { @@ -85,6 +89,7 @@ class DibiConnection extends /*Nette::*/Object } } + $config['name'] = $name; $this->config = $config; $this->driver = new $class;