mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-12 12:24:04 +00:00
Add support for global cache (#78)
This commit is contained in:
parent
d0d1f6930b
commit
92ebc1f01b
5 changed files with 65 additions and 2 deletions
|
|
@ -40,7 +40,8 @@
|
|||
"Stancl\\Tenancy\\TenancyServiceProvider"
|
||||
],
|
||||
"aliases": {
|
||||
"Tenancy": "Stancl\\Tenancy\\TenancyFacade"
|
||||
"Tenancy": "Stancl\\Tenancy\\TenancyFacade",
|
||||
"GlobalCache": "Stancl\\Tenancy\\GlobalCacheFacade"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
13
src/GlobalCacheFacade.php
Normal file
13
src/GlobalCacheFacade.php
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
namespace Stancl\Tenancy;
|
||||
|
||||
use Illuminate\Support\Facades\Facade;
|
||||
|
||||
class GlobalCacheFacade extends Facade
|
||||
{
|
||||
protected static function getFacadeAccessor()
|
||||
{
|
||||
return 'globalCache';
|
||||
}
|
||||
}
|
||||
|
|
@ -12,6 +12,7 @@ use Illuminate\Support\ServiceProvider;
|
|||
use Stancl\Tenancy\Commands\TenantList;
|
||||
use Stancl\Tenancy\Interfaces\StorageDriver;
|
||||
use Stancl\Tenancy\Interfaces\ServerConfigManager;
|
||||
use Illuminate\Cache\CacheManager;
|
||||
|
||||
class TenancyServiceProvider extends ServiceProvider
|
||||
{
|
||||
|
|
@ -69,5 +70,9 @@ class TenancyServiceProvider extends ServiceProvider
|
|||
$this->app->singleton(Seed::class, function ($app) {
|
||||
return new Seed($app['db'], $app[DatabaseManager::class]);
|
||||
});
|
||||
|
||||
$this->app->bind('globalCache', function ($app) {
|
||||
return new CacheManager($app);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
43
tests/GlobalCacheTest.php
Normal file
43
tests/GlobalCacheTest.php
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
namespace Stancl\Tenancy\Tests;
|
||||
|
||||
use GlobalCache;
|
||||
|
||||
class GlobalCacheTest extends TestCase
|
||||
{
|
||||
public $autoCreateTenant = false;
|
||||
public $autoInitTenancy = false;
|
||||
|
||||
/** @test */
|
||||
public function global_cache_manager_stores_data_in_global_cache()
|
||||
{
|
||||
$this->assertSame(null, cache('foo'));
|
||||
GlobalCache::put(['foo' => 'bar'], 1);
|
||||
$this->assertSame('bar', GlobalCache::get('foo'));
|
||||
|
||||
tenant()->create('foo.localhost');
|
||||
tenancy()->init('foo.localhost');
|
||||
$this->assertSame('bar', GlobalCache::get('foo'));
|
||||
|
||||
GlobalCache::put(['abc' => 'xyz'], 1);
|
||||
cache(['def' => 'ghi'], 1);
|
||||
$this->assertSame('ghi', cache('def'));
|
||||
|
||||
tenancy()->end();
|
||||
$this->assertSame('xyz', GlobalCache::get('abc'));
|
||||
$this->assertSame('bar', GlobalCache::get('foo'));
|
||||
$this->assertSame(null, cache('def'));
|
||||
|
||||
tenant()->create('bar.localhost');
|
||||
tenancy()->init('bar.localhost');
|
||||
$this->assertSame('xyz', GlobalCache::get('abc'));
|
||||
$this->assertSame('bar', GlobalCache::get('foo'));
|
||||
$this->assertSame(null, cache('def'));
|
||||
cache(['def' => 'xxx'], 1);
|
||||
$this->assertSame('xxx', cache('def'));
|
||||
|
||||
tenancy()->init('foo.localhost');
|
||||
$this->assertSame('ghi', cache('def'));
|
||||
}
|
||||
}
|
||||
|
|
@ -98,7 +98,8 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
|
|||
protected function getPackageAliases($app)
|
||||
{
|
||||
return [
|
||||
'Tenancy' => \Stancl\Tenancy\TenancyFacade::class
|
||||
'Tenancy' => \Stancl\Tenancy\TenancyFacade::class,
|
||||
'GlobalCache' => \Stancl\Tenancy\GlobalCacheFacade::class,
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue