From c9944b3886b64fbdab07fa0a070c291a17718aa0 Mon Sep 17 00:00:00 2001 From: David Grudl Date: Tue, 24 Jun 2014 18:16:04 +0200 Subject: [PATCH] Partially reverts "DibiTranslator: object is initialized in constructor", fixes lazy connection [Closes #138] This reverts commit 0071b80938f5a25d0347f9535b4919e0eca836ca. --- dibi/libs/DibiTranslator.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dibi/libs/DibiTranslator.php b/dibi/libs/DibiTranslator.php index 2d295ed4..77c1ddf9 100644 --- a/dibi/libs/DibiTranslator.php +++ b/dibi/libs/DibiTranslator.php @@ -51,7 +51,6 @@ final class DibiTranslator extends DibiObject public function __construct(DibiConnection $connection) { $this->connection = $connection; - $this->driver = $connection->getDriver(); $this->identifiers = new DibiHashMap(array($this, 'delimite')); } @@ -64,6 +63,10 @@ final class DibiTranslator extends DibiObject */ public function translate(array $args) { + if (!$this->driver) { + $this->driver = $this->connection->getDriver(); + } + $args = array_values($args); while (count($args) === 1 && is_array($args[0])) { // implicit array expansion $args = array_values($args[0]); @@ -187,6 +190,10 @@ final class DibiTranslator extends DibiObject return "..."; } + if (!$this->driver) { + $this->driver = $this->connection->getDriver(); + } + // array processing (with or without modifier) if ($value instanceof Traversable) { $value = iterator_to_array($value);