1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-02-04 21:14:02 +00:00

Refactor disk management in FilesystemTenancyBootstrapper

Refactor disk management by introducing forgetDisks method to handle tenant and scoped disks more efficiently.
This commit is contained in:
Victor R 2025-10-01 13:55:41 -04:00 committed by GitHub
parent e1b007946b
commit ed538ccf92
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -53,7 +53,7 @@ class FilesystemTenancyBootstrapper implements TenancyBootstrapper
}
// Storage facade
Storage::forgetDisk($this->app['config']['tenancy.filesystem.disks']);
$this->forgetDisks();
foreach ($this->app['config']['tenancy.filesystem.disks'] as $disk) {
$originalRoot = $this->app['config']["filesystems.disks.{$disk}.root"];
@ -85,9 +85,26 @@ class FilesystemTenancyBootstrapper implements TenancyBootstrapper
$this->app['url']->setAssetRoot($this->app['config']['app.asset_url']);
// Storage facade
Storage::forgetDisk($this->app['config']['tenancy.filesystem.disks']);
$this->forgetDisks();
foreach ($this->app['config']['tenancy.filesystem.disks'] as $disk) {
$this->app['config']["filesystems.disks.{$disk}.root"] = $this->originalPaths['disks'][$disk];
}
}
protected function forgetDisks(): void
{
$tenantDisks = $this->app['config']['tenancy.filesystem.disks'];
$scopedDisks = [];
foreach ($this->app['config']['filesystems.disks'] as $name => $disk) {
if (isset($disk['driver'], $disk['disk'])
&& $disk['driver'] === 'scoped'
&& in_array($disk['disk'], $tenantDisks, true)
&& ! in_array($name, $scopedDisks, true)) {
$scopedDisks[] = $name;
}
}
Storage::forgetDisk([...$tenantDisks, ...$scopedDisks]);
}
}