From ae6cf5c1abab891a38fcb2e37e5f8edec80c758e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20=C5=A0tancl?= Date: Mon, 30 Sep 2019 18:41:51 +0200 Subject: [PATCH] DB manager now doesn't depend on DB storage driver --- src/DatabaseManager.php | 18 ------------------ .../Database/CentralConnection.php | 2 +- .../Database/DatabaseStorageDriver.php | 19 +++++++++++++++++-- 3 files changed, 18 insertions(+), 21 deletions(-) diff --git a/src/DatabaseManager.php b/src/DatabaseManager.php index c57c4ef7..c36b51fa 100644 --- a/src/DatabaseManager.php +++ b/src/DatabaseManager.php @@ -4,10 +4,8 @@ declare(strict_types=1); namespace Stancl\Tenancy; -use Illuminate\Database\Connection; use Illuminate\Database\DatabaseManager as BaseDatabaseManager; use Illuminate\Foundation\Application; -use Illuminate\Support\Facades\DB; use Stancl\Tenancy\Contracts\TenantDatabaseManager; use Stancl\Tenancy\Exceptions\DatabaseManagerNotRegisteredException; use Stancl\Tenancy\Exceptions\TenantDatabaseAlreadyExistsException; @@ -178,20 +176,4 @@ class DatabaseManager return $this->app[$databaseManagers[$driver]]; } - - /** - * Get the central database connection. - * - * @return \Illuminate\Database\Connection - */ - public function getCentralConnection(): \Illuminate\Database\Connection - { - return DB::connection($this->getCentralConnectionName()); - } - - // todo this should not depend on the storage driver - public function getCentralConnectionName(): string - { - return $this->app['config']['tenancy.storage_drivers.db.connection'] ?? $this->originalDefaultConnectionName; - } } diff --git a/src/StorageDrivers/Database/CentralConnection.php b/src/StorageDrivers/Database/CentralConnection.php index ccdbdac6..1851a34c 100644 --- a/src/StorageDrivers/Database/CentralConnection.php +++ b/src/StorageDrivers/Database/CentralConnection.php @@ -10,6 +10,6 @@ trait CentralConnection { public function getConnectionName() { - return app(DatabaseManager::class)->getCentralConnectionName(); + return app(DatabaseStorageDriver::class)->getCentralConnectionName(); } } diff --git a/src/StorageDrivers/Database/DatabaseStorageDriver.php b/src/StorageDrivers/Database/DatabaseStorageDriver.php index 206f91da..de613b2d 100644 --- a/src/StorageDrivers/Database/DatabaseStorageDriver.php +++ b/src/StorageDrivers/Database/DatabaseStorageDriver.php @@ -5,8 +5,8 @@ declare(strict_types=1); namespace Stancl\Tenancy\StorageDrivers\Database; use Illuminate\Foundation\Application; +use Illuminate\Support\Facades\DB; use Stancl\Tenancy\Contracts\StorageDriver; -use Stancl\Tenancy\DatabaseManager; use Stancl\Tenancy\Exceptions\DomainsOccupiedByOtherTenantException; use Stancl\Tenancy\Exceptions\TenantCouldNotBeIdentifiedException; use Stancl\Tenancy\Exceptions\TenantWithThisIdAlreadyExistsException; @@ -28,7 +28,22 @@ class DatabaseStorageDriver implements StorageDriver public function __construct(Application $app) { $this->app = $app; - $this->centralDatabase = $app->make(DatabaseManager::class)->getCentralConnection(); + $this->centralDatabase = $this->getCentralConnection(); + } + + /** + * Get the central database connection. + * + * @return \Illuminate\Database\Connection + */ + public function getCentralConnection(): \Illuminate\Database\Connection + { + return DB::connection($this->getCentralConnectionName()); + } + + public function getCentralConnectionName(): string + { + return $this->app['config']['tenancy.storage_drivers.db.connection'] ?? $this->originalDefaultConnectionName; } public function findByDomain(string $domain): Tenant