From d2f1beba57196809c7d7b6a58f9e28acf3dc8f93 Mon Sep 17 00:00:00 2001 From: David Grudl Date: Wed, 25 Feb 2009 20:10:17 +0000 Subject: [PATCH] - added connection directive 'substitutes' - better ArrayObject handling in DibiTranslator --- dibi/libs/DibiConnection.php | 6 ++++++ dibi/libs/DibiTranslator.php | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/dibi/libs/DibiConnection.php b/dibi/libs/DibiConnection.php index 885c3be0..931446b9 100644 --- a/dibi/libs/DibiConnection.php +++ b/dibi/libs/DibiConnection.php @@ -98,6 +98,12 @@ class DibiConnection extends DibiObject $this->setProfiler(new $class); } + if (!empty($config['substitutes'])) { + foreach ($config['substitutes'] as $key => $value) { + dibi::addSubst($key, $value); + } + } + if (empty($config['lazy'])) { $this->connect(); } diff --git a/dibi/libs/DibiTranslator.php b/dibi/libs/DibiTranslator.php index 8a590f42..ebcf09aa 100644 --- a/dibi/libs/DibiTranslator.php +++ b/dibi/libs/DibiTranslator.php @@ -142,6 +142,10 @@ final class DibiTranslator extends DibiObject continue; } + if ($arg instanceof ArrayObject) { + $arg = (array) $arg; + } + if (is_array($arg)) { if (is_string(key($arg))) { // associative array -> autoselect between SET or VALUES & LIST @@ -196,8 +200,11 @@ final class DibiTranslator extends DibiObject public function formatValue($value, $modifier) { // array processing (with or without modifier) - if (is_array($value) || $value instanceof ArrayObject) { + if ($value instanceof ArrayObject) { + $value = (array) $value; + } + if (is_array($value)) { $vx = $kx = array(); switch ($modifier) { case 'and':