mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-12 15:34: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);
|
declare(strict_types=1);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'storage_driver' => Stancl\Tenancy\StorageDrivers\Database\DatabaseStorageDriver::class,
|
'storage_driver' => 'db',
|
||||||
'storage' => [
|
'storage_drivers' => [
|
||||||
'db' => [ // Stancl\Tenancy\StorageDrivers\Database\DatabaseStorageDriver
|
'db' => [
|
||||||
|
'driver' => Stancl\Tenancy\StorageDrivers\Database\DatabaseStorageDriver::class,
|
||||||
'data_column' => 'data',
|
'data_column' => 'data',
|
||||||
'custom_columns' => [
|
'custom_columns' => [
|
||||||
// 'plan',
|
// 'plan',
|
||||||
|
|
@ -16,7 +17,8 @@ return [
|
||||||
'DomainModel' => 'domains',
|
'DomainModel' => 'domains',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'redis' => [ // Stancl\Tenancy\StorageDrivers\RedisStorageDriver
|
'redis' => [
|
||||||
|
'driver' => Stancl\Tenancy\StorageDrivers\RedisStorageDriver::class,
|
||||||
'connection' => 'tenancy',
|
'connection' => 'tenancy',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -189,8 +189,9 @@ class DatabaseManager
|
||||||
return DB::connection($this->getCentralConnectionName());
|
return DB::connection($this->getCentralConnectionName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// todo this should not depend on the storage driver
|
||||||
public function getCentralConnectionName(): string
|
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()
|
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()
|
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()
|
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()
|
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)
|
public static function getAllTenants(array $ids)
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ class RedisStorageDriver implements StorageDriver
|
||||||
public function __construct(Application $app, Redis $redis)
|
public function __construct(Application $app, Redis $redis)
|
||||||
{
|
{
|
||||||
$this->app = $app;
|
$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->mergeConfigFrom(__DIR__ . '/../assets/config.php', 'tenancy');
|
||||||
|
|
||||||
$this->app->bind(Contracts\StorageDriver::class, function ($app) {
|
$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->bind(Contracts\UniqueIdentifierGenerator::class, $this->app['config']['tenancy.unique_id_generator']);
|
||||||
$this->app->singleton(DatabaseManager::class);
|
$this->app->singleton(DatabaseManager::class);
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ class TenantStorageTest extends TestCase
|
||||||
/** @test */
|
/** @test */
|
||||||
public function tenant_model_uses_correct_connection()
|
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());
|
$this->assertSame('foo', (new TenantModel)->getConnectionName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -149,7 +149,7 @@ class TenantStorageTest extends TestCase
|
||||||
]);
|
]);
|
||||||
config(['database.default' => 'sqlite']); // fix issue caused by loadMigrationsFrom
|
config(['database.default' => 'sqlite']); // fix issue caused by loadMigrationsFrom
|
||||||
|
|
||||||
config(['tenancy.storage.db.custom_columns' => [
|
config(['tenancy.storage_drivers.db.custom_columns' => [
|
||||||
'foo',
|
'foo',
|
||||||
]]);
|
]]);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,6 @@ declare(strict_types=1);
|
||||||
namespace Stancl\Tenancy\Tests;
|
namespace Stancl\Tenancy\Tests;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Redis;
|
use Illuminate\Support\Facades\Redis;
|
||||||
use Stancl\Tenancy\StorageDrivers\Database\DatabaseStorageDriver;
|
|
||||||
use Stancl\Tenancy\StorageDrivers\RedisStorageDriver;
|
|
||||||
use Stancl\Tenancy\Tenant;
|
use Stancl\Tenancy\Tenant;
|
||||||
|
|
||||||
abstract class TestCase extends \Orchestra\Testbench\TestCase
|
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'),
|
'database.redis.client' => env('TENANCY_TEST_REDIS_CLIENT', 'phpredis'),
|
||||||
'tenancy.redis.prefixed_connections' => ['default'],
|
'tenancy.redis.prefixed_connections' => ['default'],
|
||||||
'tenancy.migrations_directory' => database_path('../migrations'),
|
'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,
|
'tenancy.bootstrappers.redis' => \Stancl\Tenancy\TenancyBootstrappers\RedisTenancyBootstrapper::class,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$app->singleton(\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' => env('TENANCY_TEST_STORAGE_DRIVER', '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,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getPackageProviders($app)
|
protected function getPackageProviders($app)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue