1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-12 18:44:03 +00:00

[2.x] Restructure drivers config (#151)

* Restructure drivers config

* Apply fixes from StyleCI
This commit is contained in:
Samuel Štancl 2019-09-30 18:38:32 +02:00 committed by GitHub
parent 6cb7f27e6c
commit c965ca5c93
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 18 additions and 25 deletions

View file

@ -3,9 +3,10 @@
declare(strict_types=1);
return [
'storage_driver' => Stancl\Tenancy\StorageDrivers\Database\DatabaseStorageDriver::class,
'storage' => [
'db' => [ // Stancl\Tenancy\StorageDrivers\Database\DatabaseStorageDriver
'storage_driver' => 'db',
'storage_drivers' => [
'db' => [
'driver' => Stancl\Tenancy\StorageDrivers\Database\DatabaseStorageDriver::class,
'data_column' => 'data',
'custom_columns' => [
// 'plan',
@ -16,7 +17,8 @@ return [
'DomainModel' => 'domains',
],
],
'redis' => [ // Stancl\Tenancy\StorageDrivers\RedisStorageDriver
'redis' => [
'driver' => Stancl\Tenancy\StorageDrivers\RedisStorageDriver::class,
'connection' => 'tenancy',
],
],

View file

@ -189,8 +189,9 @@ class DatabaseManager
return DB::connection($this->getCentralConnectionName());
}
// todo this should not depend on the storage driver
public function getCentralConnectionName(): string
{
return $this->app['config']['tenancy.storage.db.connection'] ?? $this->originalDefaultConnectionName;
return $this->app['config']['tenancy.storage_drivers.db.connection'] ?? $this->originalDefaultConnectionName;
}
}

View file

@ -20,6 +20,6 @@ class DomainModel extends Model
public function getTable()
{
return config('tenancy.storage.db.table_names.DomainModel', 'domains');
return config('tenancy.storage_drivers.db.table_names.DomainModel', 'domains');
}
}

View file

@ -20,17 +20,17 @@ class TenantModel extends Model
public function getTable()
{
return config('tenancy.storage.db.table_names.TenantModel', 'tenants');
return config('tenancy.storage_drivers.db.table_names.TenantModel', 'tenants');
}
public static function dataColumn()
{
return config('tenancy.storage.db.data_column', 'data');
return config('tenancy.storage_drivers.db.data_column', 'data');
}
public static function customColumns()
{
return config('tenancy.storage.db.custom_columns', []);
return config('tenancy.storage_drivers.db.custom_columns', []);
}
public static function getAllTenants(array $ids)

View file

@ -26,7 +26,7 @@ class RedisStorageDriver implements StorageDriver
public function __construct(Application $app, Redis $redis)
{
$this->app = $app;
$this->redis = $redis->connection($app['config']['tenancy.redis.connection'] ?? 'tenancy');
$this->redis = $redis->connection($app['config']['tenancy.storage_drivers.redis.connection'] ?? 'tenancy');
}
/**

View file

@ -21,7 +21,7 @@ class TenancyServiceProvider extends ServiceProvider
$this->mergeConfigFrom(__DIR__ . '/../assets/config.php', 'tenancy');
$this->app->bind(Contracts\StorageDriver::class, function ($app) {
return $app->make($app['config']['tenancy.storage_driver']);
return $app->make($app['config']['tenancy.storage_drivers'][$app['config']['tenancy.storage_driver']]['driver']);
});
$this->app->bind(Contracts\UniqueIdentifierGenerator::class, $this->app['config']['tenancy.unique_id_generator']);
$this->app->singleton(DatabaseManager::class);

View file

@ -114,7 +114,7 @@ class TenantStorageTest extends TestCase
/** @test */
public function tenant_model_uses_correct_connection()
{
config(['tenancy.storage.db.connection' => 'foo']);
config(['tenancy.storage_drivers.db.connection' => 'foo']);
$this->assertSame('foo', (new TenantModel)->getConnectionName());
}
@ -149,7 +149,7 @@ class TenantStorageTest extends TestCase
]);
config(['database.default' => 'sqlite']); // fix issue caused by loadMigrationsFrom
config(['tenancy.storage.db.custom_columns' => [
config(['tenancy.storage_drivers.db.custom_columns' => [
'foo',
]]);

View file

@ -5,8 +5,6 @@ declare(strict_types=1);
namespace Stancl\Tenancy\Tests;
use Illuminate\Support\Facades\Redis;
use Stancl\Tenancy\StorageDrivers\Database\DatabaseStorageDriver;
use Stancl\Tenancy\StorageDrivers\RedisStorageDriver;
use Stancl\Tenancy\Tenant;
abstract class TestCase extends \Orchestra\Testbench\TestCase
@ -99,21 +97,13 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
'database.redis.client' => env('TENANCY_TEST_REDIS_CLIENT', 'phpredis'),
'tenancy.redis.prefixed_connections' => ['default'],
'tenancy.migrations_directory' => database_path('../migrations'),
'tenancy.storage.db.connection' => 'central',
'tenancy.storage_drivers.db.connection' => 'central',
'tenancy.bootstrappers.redis' => \Stancl\Tenancy\TenancyBootstrappers\RedisTenancyBootstrapper::class,
]);
$app->singleton(\Stancl\Tenancy\TenancyBootstrappers\RedisTenancyBootstrapper::class);
if (env('TENANCY_TEST_STORAGE_DRIVER', 'redis') === 'redis') {
$app['config']->set([
'tenancy.storage_driver' => RedisStorageDriver::class,
]);
} elseif (env('TENANCY_TEST_STORAGE_DRIVER', 'redis') === 'db') {
$app['config']->set([
'tenancy.storage_driver' => DatabaseStorageDriver::class,
]);
}
$app['config']->set(['tenancy.storage_driver' => env('TENANCY_TEST_STORAGE_DRIVER', 'redis')]);
}
protected function getPackageProviders($app)