From e33938f3d2707bcd97ac867ae061864265f0a395 Mon Sep 17 00:00:00 2001 From: Jose Lorenzo Rodriguez Date: Mon, 17 Feb 2014 22:19:17 +0100 Subject: [PATCH] Starting to move ConnectionManager and ConnectionRegistry to the Datasource namespace --- src/Database/Connection.php | 4 ++-- .../ConnectionManager.php | 17 +++++-------- .../ConnectionRegistry.php | 24 +++++++------------ .../MissingDatasourceConfigException.php | 4 +++- .../Error/MissingDatasourceException.php | 4 +++- src/TestSuite/Fixture/FixtureManager.php | 3 +-- tests/TestCase/Database/ConnectionTest.php | 14 +++++------ .../ConnectionManagerTest.php | 14 +++++++---- tests/init.php | 5 ++-- 9 files changed, 43 insertions(+), 46 deletions(-) rename src/{Database => Datasource}/ConnectionManager.php (94%) rename src/{Database => Datasource}/ConnectionRegistry.php (77%) rename src/{ => Datasource}/Error/MissingDatasourceConfigException.php (93%) rename src/{ => Datasource}/Error/MissingDatasourceException.php (93%) rename tests/TestCase/{Database => Datasource}/ConnectionManagerTest.php (94%) diff --git a/src/Database/Connection.php b/src/Database/Connection.php index acf26583369..5cca69c782d 100644 --- a/src/Database/Connection.php +++ b/src/Database/Connection.php @@ -90,8 +90,8 @@ class Connection { public function __construct($config) { $this->_config = $config; - if (!empty($config['datasource'])) { - $this->driver($config['datasource'], $config); + if (!empty($config['driver'])) { + $this->driver($config['driver'], $config); } if (!empty($config['log'])) { diff --git a/src/Database/ConnectionManager.php b/src/Datasource/ConnectionManager.php similarity index 94% rename from src/Database/ConnectionManager.php rename to src/Datasource/ConnectionManager.php index 8763db48818..a6e597f810e 100644 --- a/src/Database/ConnectionManager.php +++ b/src/Datasource/ConnectionManager.php @@ -1,7 +1,5 @@ $class, 'plugin' => $plugin, ]); } /** - * Create the connection object with the correct driver. + * Create the connection object with the correct settings. * * Part of the template method for Cake\Utility\ObjectRegistry::load() * - * @param string|Driver $class The classname or object to make. + * @param string|object $class The classname or object to make. * @param string $alias The alias of the object. * @param array $settings An array of settings to use for the driver. - * @return Connection A connection with the correct driver. + * @return object A connection with the correct settings. */ protected function _create($class, $alias, $settings) { if (is_object($class)) { @@ -76,11 +74,7 @@ protected function _create($class, $alias, $settings) { } unset($settings['className']); - if (!isset($instance)) { - $instance = new $class($settings); - } - $settings['datasource'] = $instance; - return new Connection($settings); + return new $class($settings); } /** diff --git a/src/Error/MissingDatasourceConfigException.php b/src/Datasource/Error/MissingDatasourceConfigException.php similarity index 93% rename from src/Error/MissingDatasourceConfigException.php rename to src/Datasource/Error/MissingDatasourceConfigException.php index 26baf422ecc..e33ced3bcc5 100644 --- a/src/Error/MissingDatasourceConfigException.php +++ b/src/Datasource/Error/MissingDatasourceConfigException.php @@ -13,7 +13,9 @@ * @since CakePHP(tm) v 3.0 * @license MIT License (http://www.opensource.org/licenses/mit-license.php) */ -namespace Cake\Error; +namespace Cake\Datasource\Error; + +use Cake\Error\Exception; /** * Exception class to be thrown when a datasource configuration is not found diff --git a/src/Error/MissingDatasourceException.php b/src/Datasource/Error/MissingDatasourceException.php similarity index 93% rename from src/Error/MissingDatasourceException.php rename to src/Datasource/Error/MissingDatasourceException.php index 808747f174b..afdb6233e8d 100644 --- a/src/Error/MissingDatasourceException.php +++ b/src/Datasource/Error/MissingDatasourceException.php @@ -15,7 +15,9 @@ * @since CakePHP(tm) v 3.0 * @license MIT License (http://www.opensource.org/licenses/mit-license.php) */ -namespace Cake\Error; +namespace Cake\Datasource\Error; + +use Cake\Error\Exception; /** * Used when a datasource cannot be found. diff --git a/src/TestSuite/Fixture/FixtureManager.php b/src/TestSuite/Fixture/FixtureManager.php index cd251e3685d..deeabaca524 100644 --- a/src/TestSuite/Fixture/FixtureManager.php +++ b/src/TestSuite/Fixture/FixtureManager.php @@ -19,8 +19,7 @@ use Cake\Core\App; use Cake\Core\Configure; use Cake\Core\Plugin; -use Cake\Database\Connection; -use Cake\Database\ConnectionManager; +use Cake\DataSource\ConnectionManager; use Cake\Error; use Cake\TestSuite\Fixture\TestFixture; use Cake\TestSuite\TestCase; diff --git a/tests/TestCase/Database/ConnectionTest.php b/tests/TestCase/Database/ConnectionTest.php index ac11d165e5d..02433ec397a 100644 --- a/tests/TestCase/Database/ConnectionTest.php +++ b/tests/TestCase/Database/ConnectionTest.php @@ -70,7 +70,7 @@ public function testConnect() { * @return void */ public function testMissingDriver() { - $connection = new Connection(['datasource' => '\Foo\InvalidDriver']); + $connection = new Connection(['driver' => '\Foo\InvalidDriver']); } /** @@ -82,7 +82,7 @@ public function testMissingDriver() { */ public function testDisabledDriver() { $mock = $this->getMock('\Cake\Database\Connection\Driver', ['enabled'], [], 'DriverMock'); - $connection = new Connection(['datasource' => $mock]); + $connection = new Connection(['driver' => $mock]); } /** @@ -572,7 +572,7 @@ public function testQuoteIdentifier() { $driver->expects($this->once()) ->method('enabled') ->will($this->returnValue(true)); - $connection = new Connection(['datasource' => $driver]); + $connection = new Connection(['driver' => $driver]); $result = $connection->quoteIdentifier('name'); $expected = '"name"'; @@ -732,7 +732,7 @@ public function testLogCommitTransaction() { $connection = $this->getMock( '\Cake\Database\Connection', ['connect'], - [['datasource' => $driver]] + [['driver' => $driver]] ); $logger = $this->getMock('\Cake\Database\Log\QueryLogger'); @@ -759,7 +759,7 @@ public function testTransactionalSuccess() { $connection = $this->getMock( '\Cake\Database\Connection', ['connect', 'commit', 'begin'], - [['datasource' => $driver]] + [['driver' => $driver]] ); $connection->expects($this->at(0))->method('begin'); $connection->expects($this->at(1))->method('commit'); @@ -781,7 +781,7 @@ public function testTransactionalFail() { $connection = $this->getMock( '\Cake\Database\Connection', ['connect', 'commit', 'begin', 'rollback'], - [['datasource' => $driver]] + [['driver' => $driver]] ); $connection->expects($this->at(0))->method('begin'); $connection->expects($this->at(1))->method('rollback'); @@ -806,7 +806,7 @@ public function testTransactionalWithException() { $connection = $this->getMock( '\Cake\Database\Connection', ['connect', 'commit', 'begin', 'rollback'], - [['datasource' => $driver]] + [['driver' => $driver]] ); $connection->expects($this->at(0))->method('begin'); $connection->expects($this->at(1))->method('rollback'); diff --git a/tests/TestCase/Database/ConnectionManagerTest.php b/tests/TestCase/Datasource/ConnectionManagerTest.php similarity index 94% rename from tests/TestCase/Database/ConnectionManagerTest.php rename to tests/TestCase/Datasource/ConnectionManagerTest.php index 6a051d22f6b..cd2f281a9ff 100644 --- a/tests/TestCase/Database/ConnectionManagerTest.php +++ b/tests/TestCase/Datasource/ConnectionManagerTest.php @@ -11,14 +11,17 @@ * @since CakePHP(tm) v 1.2.0.5550 * @license http://www.opensource.org/licenses/mit-license.php MIT License */ -namespace Cake\Test\TestCase\Database; +namespace Cake\Test\TestCase\Datasource; use Cake\Core\App; use Cake\Core\Plugin; -use Cake\Database\ConnectionManager; +use Cake\Datasource\ConnectionManager; use Cake\Database\Driver\Sqlite; use Cake\TestSuite\TestCase; +class FakeConnection { +} + /** * ConnectionManager Test */ @@ -44,10 +47,11 @@ public function tearDown() { public static function configProvider() { return [ 'Array of data using classname key.' => [[ - 'className' => 'Sqlite', + 'className' => __NAMESPACE__ . '\FakeConnection', + 'instance' => 'Sqlite', 'database' => ':memory:', ]], - 'Direct instance' => [new Sqlite(['database' => ':memory:'])], + 'Direct instance' => [new FakeConnection], ]; } @@ -62,7 +66,7 @@ public function testConfigVariants($settings) { ConnectionManager::config('test_variant', $settings); $ds = ConnectionManager::get('test_variant'); - $this->assertInstanceOf('Cake\Database\Connection', $ds); + $this->assertInstanceOf(__NAMESPACE__ . '\FakeConnection', $ds); $this->assertContains('test_variant', ConnectionManager::configured()); } diff --git a/tests/init.php b/tests/init.php index cfa6382a4a1..d4407e77186 100644 --- a/tests/init.php +++ b/tests/init.php @@ -13,7 +13,7 @@ use Cake\Cache\Cache; use Cake\Core\Configure; -use Cake\Database\ConnectionManager; +use Cake\Datasource\ConnectionManager; use Cake\I18n\I18n; use Cake\Log\Log; @@ -98,7 +98,8 @@ ]); ConnectionManager::config('test', [ - 'className' => getenv('db_class'), + 'className' => 'Cake\Database\Connection', + 'driver' => getenv('db_class'), 'dsn' => getenv('db_dsn'), 'database' => getenv('db_database'), 'login' => getenv('db_login'),