mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-05 05:14:03 +00:00
Revert some \ additions
This commit is contained in:
parent
c73344c3ae
commit
e949bf4373
14 changed files with 34 additions and 35 deletions
|
|
@ -8,7 +8,7 @@ class CacheManager extends BaseCacheManager
|
||||||
{
|
{
|
||||||
public function __call($method, $parameters)
|
public function __call($method, $parameters)
|
||||||
{
|
{
|
||||||
$tags = [\config('tenancy.cache.tag_base') . \tenant('uuid')];
|
$tags = [config('tenancy.cache.tag_base') . tenant('uuid')];
|
||||||
|
|
||||||
if ($method === "tags") {
|
if ($method === "tags") {
|
||||||
if (\count($parameters) !== 1) {
|
if (\count($parameters) !== 1) {
|
||||||
|
|
@ -18,7 +18,7 @@ class CacheManager extends BaseCacheManager
|
||||||
$names = $parameters[0];
|
$names = $parameters[0];
|
||||||
$names = (array) $names; // cache()->tags('foo') https://laravel.com/docs/5.7/cache#removing-tagged-cache-items
|
$names = (array) $names; // cache()->tags('foo') https://laravel.com/docs/5.7/cache#removing-tagged-cache-items
|
||||||
|
|
||||||
return $this->store()->tags(\array_merge($tags, $names));
|
return $this->store()->tags(array_merge($tags, $names));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->store()->tags($tags)->$method(...$parameters);
|
return $this->store()->tags($tags)->$method(...$parameters);
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ class Rollback extends RollbackCommand
|
||||||
|
|
||||||
$this->input->setOption('database', 'tenant');
|
$this->input->setOption('database', 'tenant');
|
||||||
|
|
||||||
\tenant()->all($this->option('tenants'))->each(function ($tenant) {
|
tenant()->all($this->option('tenants'))->each(function ($tenant) {
|
||||||
$this->line("Tenant: {$tenant['uuid']} ({$tenant['domain']})");
|
$this->line("Tenant: {$tenant['uuid']} ({$tenant['domain']})");
|
||||||
$this->database->connectToTenant($tenant);
|
$this->database->connectToTenant($tenant);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ class Seed extends SeedCommand
|
||||||
|
|
||||||
$this->input->setOption('database', 'tenant');
|
$this->input->setOption('database', 'tenant');
|
||||||
|
|
||||||
\tenant()->all($this->option('tenants'))->each(function ($tenant) {
|
tenant()->all($this->option('tenants'))->each(function ($tenant) {
|
||||||
$this->line("Tenant: {$tenant['uuid']} ({$tenant['domain']})");
|
$this->line("Tenant: {$tenant['uuid']} ({$tenant['domain']})");
|
||||||
$this->database->connectToTenant($tenant);
|
$this->database->connectToTenant($tenant);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ class TenantList extends Command
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
$this->info("Listing all tenants.");
|
$this->info("Listing all tenants.");
|
||||||
\tenancy()->all()->each(function ($tenant) {
|
tenancy()->all()->each(function ($tenant) {
|
||||||
$this->line("[Tenant] uuid: {$tenant['uuid']} @ {$tenant['domain']}");
|
$this->line("[Tenant] uuid: {$tenant['uuid']} @ {$tenant['domain']}");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,9 @@ class TenantAssetsController extends Controller
|
||||||
public function asset($path)
|
public function asset($path)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
return \response()->file(\storage_path("app/public/$path"));
|
return response()->file(\storage_path("app/public/$path"));
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
\abort(404);
|
abort(404);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
namespace Stancl\Tenancy;
|
namespace Stancl\Tenancy;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
use Stancl\Tenancy\Jobs\QueuedTenantDatabaseCreator;
|
use Stancl\Tenancy\Jobs\QueuedTenantDatabaseCreator;
|
||||||
use Stancl\Tenancy\Jobs\QueuedTenantDatabaseDeleter;
|
use Stancl\Tenancy\Jobs\QueuedTenantDatabaseDeleter;
|
||||||
use Illuminate\Database\DatabaseManager as BaseDatabaseManager;
|
use Illuminate\Database\DatabaseManager as BaseDatabaseManager;
|
||||||
|
|
@ -13,7 +12,7 @@ class DatabaseManager
|
||||||
|
|
||||||
public function __construct(BaseDatabaseManager $database)
|
public function __construct(BaseDatabaseManager $database)
|
||||||
{
|
{
|
||||||
$this->originalDefaultConnection = \config('database.default');
|
$this->originalDefaultConnection = config('database.default');
|
||||||
$this->database = $database;
|
$this->database = $database;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -26,7 +25,7 @@ class DatabaseManager
|
||||||
|
|
||||||
public function connectToTenant($tenant)
|
public function connectToTenant($tenant)
|
||||||
{
|
{
|
||||||
$this->connect(\tenant()->getDatabaseName($tenant));
|
$this->connect(tenant()->getDatabaseName($tenant));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function disconnect()
|
public function disconnect()
|
||||||
|
|
@ -41,16 +40,16 @@ class DatabaseManager
|
||||||
$this->createTenantConnection($name);
|
$this->createTenantConnection($name);
|
||||||
$driver = $driver ?: $this->getDriver();
|
$driver = $driver ?: $this->getDriver();
|
||||||
|
|
||||||
$databaseManagers = \config('tenancy.database_managers');
|
$databaseManagers = config('tenancy.database_managers');
|
||||||
|
|
||||||
if (! \array_key_exists($driver, $databaseManagers)) {
|
if (! array_key_exists($driver, $databaseManagers)) {
|
||||||
throw new \Exception("Database could not be created: no database manager for driver $driver is registered.");
|
throw new Exception("Database could not be created: no database manager for driver $driver is registered.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (\config('tenancy.queue_database_creation', false)) {
|
if (config('tenancy.queue_database_creation', false)) {
|
||||||
QueuedTenantDatabaseCreator::dispatch(\app($databaseManagers[$driver]), $name, 'create');
|
QueuedTenantDatabaseCreator::dispatch(app($databaseManagers[$driver]), $name, 'create');
|
||||||
} else {
|
} else {
|
||||||
\app($databaseManagers[$driver])->createDatabase($name);
|
app($databaseManagers[$driver])->createDatabase($name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ class InitializeTenancy
|
||||||
public function handle($request, Closure $next)
|
public function handle($request, Closure $next)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
\tenancy()->init();
|
tenancy()->init();
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
($this->onFail)($e);
|
($this->onFail)($e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ class RedisStorageDriver implements StorageDriver
|
||||||
return $this->redis->hgetall("tenants:$uuid");
|
return $this->redis->hgetall("tenants:$uuid");
|
||||||
}
|
}
|
||||||
|
|
||||||
return \array_combine($fields, $this->redis->hmget("tenants:$uuid", $fields));
|
return array_combine($fields, $this->redis->hmget("tenants:$uuid", $fields));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTenantIdByDomain(string $domain): ?string
|
public function getTenantIdByDomain(string $domain): ?string
|
||||||
|
|
@ -49,7 +49,7 @@ class RedisStorageDriver implements StorageDriver
|
||||||
public function createTenant(string $domain, string $uuid): array
|
public function createTenant(string $domain, string $uuid): array
|
||||||
{
|
{
|
||||||
$this->redis->hmset("domains:$domain", 'tenant_id', $uuid);
|
$this->redis->hmset("domains:$domain", 'tenant_id', $uuid);
|
||||||
$this->redis->hmset("tenants:$uuid", 'uuid', \json_encode($uuid), 'domain', \json_encode($domain));
|
$this->redis->hmset("tenants:$uuid", 'uuid', json_encode($uuid), 'domain', json_encode($domain));
|
||||||
return $this->redis->hgetall("tenants:$uuid");
|
return $this->redis->hgetall("tenants:$uuid");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,7 +67,7 @@ class RedisStorageDriver implements StorageDriver
|
||||||
|
|
||||||
public function getAllTenants(array $uuids = []): array
|
public function getAllTenants(array $uuids = []): array
|
||||||
{
|
{
|
||||||
$hashes = \array_map(function ($hash) {
|
$hashes = array_map(function ($hash) {
|
||||||
return "tenants:{$hash}";
|
return "tenants:{$hash}";
|
||||||
}, $uuids);
|
}, $uuids);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ class TenancyServiceProvider extends ServiceProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->publishes([
|
$this->publishes([
|
||||||
__DIR__ . '/config/tenancy.php' => \config_path('tenancy.php'),
|
__DIR__ . '/config/tenancy.php' => config_path('tenancy.php'),
|
||||||
], 'config');
|
], 'config');
|
||||||
|
|
||||||
$this->loadRoutesFrom(__DIR__ . '/routes.php');
|
$this->loadRoutesFrom(__DIR__ . '/routes.php');
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ class SQLiteDatabaseManager implements TenantDatabaseManager
|
||||||
public function createDatabase(string $name): bool
|
public function createDatabase(string $name): bool
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
return \fclose(\fopen(\database_path($name), 'w'));
|
return fclose(fopen(database_path($name), 'w'));
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -18,7 +18,7 @@ class SQLiteDatabaseManager implements TenantDatabaseManager
|
||||||
public function deleteDatabase(string $name): bool
|
public function deleteDatabase(string $name): bool
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
return \unlink(\database_path($name));
|
return unlink(database_path($name));
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ class TenantManager
|
||||||
|
|
||||||
public static function currentDomain(): ?string
|
public static function currentDomain(): ?string
|
||||||
{
|
{
|
||||||
return \request()->getHost() ?? null;
|
return request()->getHost() ?? null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getDatabaseName($tenant = []): string
|
public function getDatabaseName($tenant = []): string
|
||||||
|
|
@ -203,7 +203,7 @@ class TenantManager
|
||||||
{
|
{
|
||||||
$uuids = (array) $uuids;
|
$uuids = (array) $uuids;
|
||||||
|
|
||||||
return \collect(\array_map(function ($tenant_array) {
|
return collect(array_map(function ($tenant_array) {
|
||||||
return $this->jsonDecodeArrayValues($tenant_array);
|
return $this->jsonDecodeArrayValues($tenant_array);
|
||||||
}, $this->storage->getAllTenants($uuids)));
|
}, $this->storage->getAllTenants($uuids)));
|
||||||
}
|
}
|
||||||
|
|
@ -236,7 +236,7 @@ class TenantManager
|
||||||
return $this->jsonDecodeArrayValues($this->storage->getMany($uuid, $key));
|
return $this->jsonDecodeArrayValues($this->storage->getMany($uuid, $key));
|
||||||
}
|
}
|
||||||
|
|
||||||
return \json_decode($this->storage->get($uuid, $key), true);
|
return json_decode($this->storage->get($uuid, $key), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -264,7 +264,7 @@ class TenantManager
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! \is_null($value)) {
|
if (! \is_null($value)) {
|
||||||
return $target[$key] = \json_decode($this->storage->put($uuid, $key, \json_encode($value)), true);
|
return $target[$key] = json_decode($this->storage->put($uuid, $key, json_encode($value)), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! \is_array($key)) {
|
if (! \is_array($key)) {
|
||||||
|
|
@ -273,7 +273,7 @@ class TenantManager
|
||||||
|
|
||||||
foreach ($key as $k => $v) {
|
foreach ($key as $k => $v) {
|
||||||
$target[$k] = $v;
|
$target[$k] = $v;
|
||||||
$key[$k] = \json_encode($v);
|
$key[$k] = json_encode($v);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->jsonDecodeArrayValues($this->storage->putMany($uuid, $key));
|
return $this->jsonDecodeArrayValues($this->storage->putMany($uuid, $key));
|
||||||
|
|
@ -294,8 +294,8 @@ class TenantManager
|
||||||
|
|
||||||
protected function jsonDecodeArrayValues(array $array)
|
protected function jsonDecodeArrayValues(array $array)
|
||||||
{
|
{
|
||||||
\array_walk($array, function (&$value, $key) {
|
array_walk($array, function (&$value, $key) {
|
||||||
$value = \json_decode($value, true);
|
$value = json_decode($value, true);
|
||||||
});
|
});
|
||||||
|
|
||||||
return $array;
|
return $array;
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,11 @@ class TenantRouteServiceProvider extends RouteServiceProvider
|
||||||
{
|
{
|
||||||
public function map()
|
public function map()
|
||||||
{
|
{
|
||||||
if (! \in_array(\request()->getHost(), $this->app['config']['tenancy.exempt_domains'] ?? [])
|
if (! \in_array(request()->getHost(), $this->app['config']['tenancy.exempt_domains'] ?? [])
|
||||||
&& \file_exists(\base_path('routes/tenant.php'))) {
|
&& file_exists(base_path('routes/tenant.php'))) {
|
||||||
Route::middleware(['web', 'tenancy'])
|
Route::middleware(['web', 'tenancy'])
|
||||||
->namespace($this->app['config']['tenant_route_namespace'] ?? 'App\Http\Controllers')
|
->namespace($this->app['config']['tenant_route_namespace'] ?? 'App\Http\Controllers')
|
||||||
->group(\base_path('routes/tenant.php'));
|
->group(base_path('routes/tenant.php'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,6 @@ trait DealsWithMigrations
|
||||||
{
|
{
|
||||||
protected function getMigrationPaths()
|
protected function getMigrationPaths()
|
||||||
{
|
{
|
||||||
return [\config('tenancy.migrations_directory', \database_path('migrations/tenant'))];
|
return [config('tenancy.migrations_directory', database_path('migrations/tenant'))];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ trait HasATenantsOption
|
||||||
{
|
{
|
||||||
protected function getOptions()
|
protected function getOptions()
|
||||||
{
|
{
|
||||||
return \array_merge([
|
return array_merge([
|
||||||
['tenants', null, InputOption::VALUE_IS_ARRAY | InputOption::VALUE_OPTIONAL, '', null]
|
['tenants', null, InputOption::VALUE_IS_ARRAY | InputOption::VALUE_OPTIONAL, '', null]
|
||||||
], parent::getOptions());
|
], parent::getOptions());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue