From c9f17809dd91e8385037b213510c918d0015342c Mon Sep 17 00:00:00 2001 From: Mark Story Date: Sun, 7 Apr 2013 16:27:41 -0400 Subject: [PATCH] Update ConnectionManager to use new Connection class. Update ConnectionManager temporarily to work with the incomplete database layer. Fixtures are not functional at this time, but at least getDataSource() works. --- lib/Cake/Model/ConnectionManager.php | 21 +++++++++++++------ lib/Cake/TestSuite/Fixture/FixtureManager.php | 2 +- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/lib/Cake/Model/ConnectionManager.php b/lib/Cake/Model/ConnectionManager.php index 23e42eff897..bcca5be63d1 100644 --- a/lib/Cake/Model/ConnectionManager.php +++ b/lib/Cake/Model/ConnectionManager.php @@ -23,6 +23,7 @@ use Cake\Core\App; use Cake\Core\Configure; +use Cake\Database\Connection; use Cake\Error; /** @@ -88,8 +89,7 @@ public static function getDataSource($name) { } if (!empty(static::$_dataSources[$name])) { - $return = static::$_dataSources[$name]; - return $return; + return static::$_dataSources[$name]; } if (empty(static::$_connectionsEnum[$name])) { @@ -98,15 +98,24 @@ public static function getDataSource($name) { $class = static::loadDataSource($name); - if (strpos($class, '\Datasource') === false) { + if ( + strpos($class, '\Datasource') === false && + strpos($class, '\Database') === false + ) { throw new Error\MissingDatasourceException(array( 'class' => $class, 'plugin' => null, 'message' => 'Datasource is not found in Model/Datasource package.' )); } - static::$_dataSources[$name] = new $class(static::$config[$name]); - static::$_dataSources[$name]->configKeyName = $name; + // TODO fix this once the datasource interface & + // internals are solved. + if (strpos($class, '\Database') !== false) { + static::$_dataSources[$name] = new Connection(static::$config[$name]); + } else { + static::$_dataSources[$name] = new $class(static::$config[$name]); + static::$_dataSources[$name]->configKeyName = $name; + } return static::$_dataSources[$name]; } @@ -164,7 +173,7 @@ public static function loadDataSource($connName) { $conn = static::$_connectionsEnum[$connName]; } - if (class_exists($conn['classname'], false)) { + if (class_exists($conn['classname'])) { return $conn['classname']; } diff --git a/lib/Cake/TestSuite/Fixture/FixtureManager.php b/lib/Cake/TestSuite/Fixture/FixtureManager.php index a50c5542af3..90c4015bfbc 100644 --- a/lib/Cake/TestSuite/Fixture/FixtureManager.php +++ b/lib/Cake/TestSuite/Fixture/FixtureManager.php @@ -162,7 +162,7 @@ protected function _setupTable($fixture, $db = null, $drop = true) { return; } - $sources = (array)$db->listSources(); + $sources = (array)$db->listTables(); $table = $db->config['prefix'] . $fixture->table; $exists = in_array($table, $sources);