1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-05 13:47:33 +02:00

DibiConnection: uses single DibiTranslator object (per-connection)

This commit is contained in:
David Grudl
2010-08-03 00:44:59 +02:00
parent a0a12701e9
commit 2ed67c1944

View File

@@ -34,6 +34,9 @@ class DibiConnection extends DibiObject
/** @var IDibiDriver Driver */ /** @var IDibiDriver Driver */
private $driver; private $driver;
/** @var IDibiDriver Driver */
private $translator;
/** @var IDibiProfiler Profiler */ /** @var IDibiProfiler Profiler */
private $profiler; private $profiler;
@@ -88,6 +91,7 @@ class DibiConnection extends DibiObject
$config['name'] = $name; $config['name'] = $name;
$this->config = $config; $this->config = $config;
$this->driver = new $class; $this->driver = new $class;
$this->translator = new DibiTranslator($this->driver);
// profiler // profiler
$profilerCfg = & $config['profiler']; $profilerCfg = & $config['profiler'];
@@ -251,8 +255,7 @@ class DibiConnection extends DibiObject
{ {
$args = func_get_args(); $args = func_get_args();
$this->connect(); $this->connect();
$translator = new DibiTranslator($this->driver); return $this->nativeQuery($this->translator->translate($args));
return $this->nativeQuery($translator->translate($args));
} }
@@ -267,8 +270,7 @@ class DibiConnection extends DibiObject
{ {
$args = func_get_args(); $args = func_get_args();
$this->connect(); $this->connect();
$translator = new DibiTranslator($this->driver); return $this->translator->translate($args);
return $translator->translate($args);
} }
@@ -283,8 +285,7 @@ class DibiConnection extends DibiObject
$args = func_get_args(); $args = func_get_args();
$this->connect(); $this->connect();
try { try {
$translator = new DibiTranslator($this->driver); dibi::dump($this->translator->translate($args));
dibi::dump($translator->translate($args));
return TRUE; return TRUE;
} catch (DibiException $e) { } catch (DibiException $e) {
@@ -305,8 +306,7 @@ class DibiConnection extends DibiObject
{ {
$args = func_get_args(); $args = func_get_args();
$this->connect(); $this->connect();
$translator = new DibiTranslator($this->driver); return new DibiDataSource($this->translator->translate($args), $this);
return new DibiDataSource($translator->translate($args), $this);
} }