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

Bootstrapper tests

This commit is contained in:
Samuel Štancl 2020-05-11 03:37:47 +02:00
parent 73fc525126
commit 6f4b9f486c
20 changed files with 266 additions and 79 deletions

View file

@ -6,6 +6,7 @@ namespace Stancl\Tenancy\TenancyBootstrappers;
use Illuminate\Cache\CacheManager;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Support\Facades\Cache;
use Stancl\Tenancy\CacheManager as TenantCacheManager;
use Stancl\Tenancy\Contracts\TenancyBootstrapper;
use Stancl\Tenancy\Contracts\Tenant;
@ -25,6 +26,8 @@ class CacheTenancyBootstrapper implements TenancyBootstrapper
public function start(Tenant $tenant)
{
$this->resetFacadeCache();
$this->originalCache = $this->originalCache ?? $this->app['cache'];
$this->app->extend('cache', function () {
return new TenantCacheManager($this->app);
@ -33,10 +36,22 @@ class CacheTenancyBootstrapper implements TenancyBootstrapper
public function end()
{
$this->resetFacadeCache();
$this->app->extend('cache', function () {
return $this->originalCache;
});
$this->originalCache = null;
}
/**
* This wouldn't be necessary, but is needed when a call to the
* facade has been made prior to bootstrapping tenancy. The
* facade has its own cache, separate from the container.
*/
public function resetFacadeCache()
{
Cache::clearResolvedInstances();
}
}