mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-12 09:34:04 +00:00
better defaults
This commit is contained in:
parent
6c5bde7d07
commit
1d42f33d34
6 changed files with 34 additions and 14 deletions
|
|
@ -238,11 +238,13 @@ class TenancyServiceProvider extends ServiceProvider
|
|||
|
||||
protected function mapRoutes()
|
||||
{
|
||||
if (file_exists(base_path('routes/tenant.php'))) {
|
||||
$this->app->booted(function () {
|
||||
if (file_exists(base_path('routes/tenant.php'))) {
|
||||
RouteFacade::namespace(static::$controllerNamespace)
|
||||
->middleware('tenant')
|
||||
->group(base_path('routes/tenant.php'));
|
||||
}
|
||||
->middleware('tenant')
|
||||
->group(base_path('routes/tenant.php'));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected function makeTenancyMiddlewareHighestPriority()
|
||||
|
|
|
|||
|
|
@ -37,8 +37,7 @@ return [
|
|||
* Only relevant if you're using the domain or subdomain identification middleware.
|
||||
*/
|
||||
'central_domains' => [
|
||||
'127.0.0.1',
|
||||
'localhost',
|
||||
str(env('APP_URL'))->after('://')->before('/')->toString(),
|
||||
],
|
||||
|
||||
'identification' => [
|
||||
|
|
@ -121,17 +120,28 @@ return [
|
|||
* To configure their behavior, see the config keys below.
|
||||
*/
|
||||
'bootstrappers' => [
|
||||
// Basic Laravel features
|
||||
Stancl\Tenancy\Bootstrappers\DatabaseTenancyBootstrapper::class,
|
||||
Stancl\Tenancy\Bootstrappers\PrefixCacheTenancyBootstrapper::class,
|
||||
// Stancl\Tenancy\Bootstrappers\CacheTagsBootstrapper::class, // Alternative to PrefixCacheTenancyBootstrapper
|
||||
Stancl\Tenancy\Bootstrappers\FilesystemTenancyBootstrapper::class,
|
||||
Stancl\Tenancy\Bootstrappers\QueueTenancyBootstrapper::class,
|
||||
// Stancl\Tenancy\Bootstrappers\RedisTenancyBootstrapper::class, // Note: phpredis is needed
|
||||
|
||||
// Support for edge cases
|
||||
Stancl\Tenancy\Bootstrappers\SessionTenancyBootstrapper::class,
|
||||
Stancl\Tenancy\Bootstrappers\BatchTenancyBootstrapper::class,
|
||||
// Stancl\Tenancy\Bootstrappers\PrefixCacheTenancyBootstrapper::class,
|
||||
|
||||
// Configurable bootstrappers
|
||||
// Stancl\Tenancy\Bootstrappers\RootUrlBootstrapper::class,
|
||||
// Stancl\Tenancy\Bootstrappers\UrlGeneratorBootstrapper::class,
|
||||
// Stancl\Tenancy\Bootstrappers\MailTenancyBootstrapper::class, // Note: Queueing mail requires using QueueTenancyBootstrapper with $forceRefresh set to true
|
||||
// Stancl\Tenancy\Bootstrappers\BroadcastingConfigBootstrapper::class,
|
||||
// Stancl\Tenancy\Bootstrappers\BroadcastingChannelPrefixBootstrapper::class,
|
||||
|
||||
// Integration bootstrappers
|
||||
// Stancl\Tenancy\Bootstrappers\Integrations\FortifyRouteTenancyBootstrapper::class,
|
||||
// Stancl\Tenancy\Bootstrappers\SessionTenancyBootstrapper::class,
|
||||
// Stancl\Tenancy\Bootstrappers\MailTenancyBootstrapper::class, // Queueing mail requires using QueueTenancyBootstrapper with $forceRefresh set to true
|
||||
// Stancl\Tenancy\Bootstrappers\RedisTenancyBootstrapper::class, // Note: phpredis is needed
|
||||
// Stancl\Tenancy\Bootstrappers\Integrations\ScoutTenancyBootstrapper::class,
|
||||
],
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ use Illuminate\Database\DatabaseManager;
|
|||
use Stancl\Tenancy\Contracts\TenancyBootstrapper;
|
||||
use Stancl\Tenancy\Contracts\Tenant;
|
||||
|
||||
// todo add docblock
|
||||
class BatchTenancyBootstrapper implements TenancyBootstrapper
|
||||
{
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ use Illuminate\Support\Facades\Cache;
|
|||
use Stancl\Tenancy\Contracts\TenancyBootstrapper;
|
||||
use Stancl\Tenancy\Contracts\Tenant;
|
||||
|
||||
// todo@rename some bootstrappers end in TenancyBootstrapper and others don't - make this consistent or make the difference clear
|
||||
|
||||
/**
|
||||
* todo@name rename?
|
||||
*
|
||||
|
|
|
|||
|
|
@ -30,14 +30,18 @@ class SessionTenancyBootstrapper implements TenancyBootstrapper
|
|||
|
||||
public function bootstrap(Tenant $tenant): void
|
||||
{
|
||||
$this->resetDatabaseHandler();
|
||||
if ($this->config->get('session.driver') === 'database') {
|
||||
$this->resetDatabaseHandler();
|
||||
}
|
||||
}
|
||||
|
||||
public function revert(): void
|
||||
{
|
||||
// When ending tenancy, this runs *before* the DatabaseTenancyBootstrapper, so DB tenancy
|
||||
// is still bootstrapped. For that reason, we have to explicitly use the central connection
|
||||
$this->resetDatabaseHandler(config('tenancy.database.central_connection'));
|
||||
if ($this->config->get('session.driver') === 'database') {
|
||||
// When ending tenancy, this runs *before* the DatabaseTenancyBootstrapper, so DB tenancy
|
||||
// is still bootstrapped. For that reason, we have to explicitly use the central connection
|
||||
$this->resetDatabaseHandler(config('tenancy.database.central_connection'));
|
||||
}
|
||||
}
|
||||
|
||||
protected function resetDatabaseHandler(string $defaultConnection = null): void
|
||||
|
|
|
|||
|
|
@ -116,6 +116,7 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
|
|||
'--realpath' => true,
|
||||
'--force' => true,
|
||||
],
|
||||
'tenancy.central_domains' => ['localhost', '127.0.0.1'],
|
||||
'tenancy.bootstrappers' => [
|
||||
DatabaseTenancyBootstrapper::class,
|
||||
FilesystemTenancyBootstrapper::class,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue