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:
parent
6cb7f27e6c
commit
c965ca5c93
8 changed files with 18 additions and 25 deletions
|
|
@ -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',
|
||||
],
|
||||
],
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
]]);
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue