From 2cbebc02c4f5a32929cf83f2ef4679b064c8b6d3 Mon Sep 17 00:00:00 2001 From: David Grudl Date: Fri, 14 Feb 2020 12:39:17 +0100 Subject: [PATCH] Connection: translator is created/destructed in connect/disconnect [Closes #352][Closes #354] --- src/Dibi/Connection.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Dibi/Connection.php b/src/Dibi/Connection.php index bec5f78f..e0465d5b 100644 --- a/src/Dibi/Connection.php +++ b/src/Dibi/Connection.php @@ -119,6 +119,7 @@ class Connection implements IConnection { if ($this->config['driver'] instanceof Driver) { $this->driver = $this->config['driver']; + $this->translator = new Translator($this); return; } elseif (is_subclass_of($this->config['driver'], Driver::class)) { @@ -135,6 +136,8 @@ class Connection implements IConnection $event = $this->onEvent ? new Event($this, Event::CONNECT) : null; try { $this->driver = new $class($this->config); + $this->translator = new Translator($this); + if ($event) { $this->onEvent($event->done()); } @@ -160,7 +163,7 @@ class Connection implements IConnection { if ($this->driver) { $this->driver->disconnect(); - $this->driver = null; + $this->driver = $this->translator = null; } } @@ -261,11 +264,7 @@ class Connection implements IConnection if (!$this->driver) { $this->connect(); } - if (!$this->translator) { - $this->translator = new Translator($this); - } - $translator = clone $this->translator; - return $translator->translate($args); + return (clone $this->translator)->translate($args); }