mirror of
https://github.com/archtechx/tenancy.git
synced 2026-06-20 22:54:05 +00:00
Improve comments
This commit is contained in:
parent
20036ef1ff
commit
566f50440a
2 changed files with 19 additions and 13 deletions
|
|
@ -25,7 +25,10 @@ use Stancl\Tenancy\TenancyServiceProvider;
|
||||||
*
|
*
|
||||||
* Notably, this bootstrapper sets TenancyServiceProvider::$adjustCacheManagerUsing to a callback
|
* Notably, this bootstrapper sets TenancyServiceProvider::$adjustCacheManagerUsing to a callback
|
||||||
* that ensures all affected stores still use the central connection when accessed via global cache
|
* that ensures all affected stores still use the central connection when accessed via global cache
|
||||||
* (typicaly the GlobalCache facade or global_cache() helper).
|
* (typically the GlobalCache facade or global_cache() helper), even though this bootstrapper explicitly
|
||||||
|
* sets the connection to tenant for all scoped cache stores. TenancyServiceProvider::makeDatabaseCacheStoresCentral()
|
||||||
|
* cannot fix globalCache on its own because it reads 'tenant' from config (set by this bootstrapper), not null,
|
||||||
|
* so the callback is still needed to correct the connection to central for globalCache.
|
||||||
*/
|
*/
|
||||||
class DatabaseCacheBootstrapper implements TenancyBootstrapper
|
class DatabaseCacheBootstrapper implements TenancyBootstrapper
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -88,23 +88,26 @@ class TenancyServiceProvider extends ServiceProvider
|
||||||
// This works great for cache stores that are *directly* scoped, like Redis or
|
// This works great for cache stores that are *directly* scoped, like Redis or
|
||||||
// any other tagged or prefixed stores, but it doesn't work for the database driver.
|
// any other tagged or prefixed stores, but it doesn't work for the database driver.
|
||||||
//
|
//
|
||||||
// When we use the DatabaseTenancyBootstrapper, it changes the default connection,
|
// When DatabaseTenancyBootstrapper is used, it changes the default DB connection
|
||||||
// and therefore the connection of the database store that will be created when
|
// to 'tenant'. A freshly created CacheManager would therefore instantiate database
|
||||||
// this new CacheManager is instantiated again.
|
// stores with the tenant connection.
|
||||||
//
|
//
|
||||||
// For that reason, we also adjust the relevant stores on this new CacheManager
|
// For that reason, we adjust the relevant stores on this new CacheManager
|
||||||
// using the callback below. It is set by DatabaseCacheBootstrapper.
|
// using the makeDatabaseCacheStoresCentral() method and the $adjustCacheManagerUsing callback below
|
||||||
|
// (set by DatabaseCacheBootstrapper).
|
||||||
$manager = new CacheManager($app);
|
$manager = new CacheManager($app);
|
||||||
|
|
||||||
// Make globalCache use either the configured non-null connection,
|
// When DatabaseTenancyBootstrapper is used, database stores whose 'connection'
|
||||||
// or fall back to the central connection.
|
// config is null fall back to the default DB connection ('tenant'). Reset each
|
||||||
|
// such store to its explicitly configured connection, or fall back to central.
|
||||||
$this->makeDatabaseCacheStoresCentral($manager);
|
$this->makeDatabaseCacheStoresCentral($manager);
|
||||||
|
|
||||||
// If a bootstrapper (like DatabaseCacheBootstrapper) makes the
|
// DatabaseCacheBootstrapper explicitly writes 'tenant' into each store's 'connection'
|
||||||
// cache connection tenant explicitly, the makeDatabaseCacheStoresCentral()
|
// config. makeDatabaseCacheStoresCentral() above would then read 'tenant' as the
|
||||||
// call ends up setting the tenant connection rather than the central one,
|
// configured value (not null) and use it directly, so the central connection fallback
|
||||||
// and the $adjustCacheManagerUsing callback is needed to
|
// wouldn't be used.
|
||||||
// make globalCache use the central connection.
|
//
|
||||||
|
// This callback is used to correct those connections back to central for globalCache.
|
||||||
if (static::$adjustCacheManagerUsing !== null) {
|
if (static::$adjustCacheManagerUsing !== null) {
|
||||||
(static::$adjustCacheManagerUsing)($manager);
|
(static::$adjustCacheManagerUsing)($manager);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue