rewrite modular logic :D
This commit is contained in:
@@ -1,16 +1,14 @@
|
||||
<?php
|
||||
|
||||
use App\Modules\BaseModule;
|
||||
use App\Modules\EmptyModule;
|
||||
use App\Modules\Module;
|
||||
use App\Modules\ModuleContract;
|
||||
use App\Modules\ModuleRepository;
|
||||
use App\Modules\TurkmenNumberFormatter\Repositories\TurkmenNumberFormatter;
|
||||
use Illuminate\Contracts\Cache\Repository as CacheRepository;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
/**
|
||||
* Application locales
|
||||
@@ -23,28 +21,11 @@ function appLocales(): array
|
||||
}
|
||||
|
||||
/**
|
||||
* Get module
|
||||
* Return modular repo
|
||||
*/
|
||||
function module(string $moduleName): ModuleContract
|
||||
function modular(): ModuleRepository
|
||||
{
|
||||
$moduleClass = 'App\\Modules\\'.$moduleName.'\\'.$moduleName.'Module';
|
||||
|
||||
if (class_exists($moduleClass)) {
|
||||
/** @var ModuleContract $module */
|
||||
$module = new $moduleClass;
|
||||
|
||||
return $module;
|
||||
}
|
||||
|
||||
return emptyModule();
|
||||
}
|
||||
|
||||
/**
|
||||
* Empty module
|
||||
*/
|
||||
function emptyModule(): ModuleContract
|
||||
{
|
||||
return new EmptyModule;
|
||||
return app(ModuleRepository::class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -52,7 +33,15 @@ function emptyModule(): ModuleContract
|
||||
*/
|
||||
function modules_path(string $path = ''): string
|
||||
{
|
||||
return app_path('Modules/'.$path);
|
||||
return modular()->path().'/'.$path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get module
|
||||
*/
|
||||
function module(string $moduleName): ModuleContract
|
||||
{
|
||||
return modular()->module($moduleName);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -62,41 +51,15 @@ function modules_path(string $path = ''): string
|
||||
*/
|
||||
function modules(bool $withDisabled = false): Collection
|
||||
{
|
||||
if (temp_cache()->has('modules')) {
|
||||
/** @var Collection<array-key, BaseModule> $modules */
|
||||
$modules = temp_cache('modules');
|
||||
return $withDisabled ? modular()->allModules() : modular()->modules();
|
||||
}
|
||||
|
||||
return $modules;
|
||||
}
|
||||
|
||||
/** @var array<int, string> */
|
||||
$modulesDir = File::directories(modules_path());
|
||||
$modules = collect();
|
||||
|
||||
foreach ($modulesDir as $modulePath) {
|
||||
$moduleName = Str::afterLast($modulePath, '/');
|
||||
|
||||
$module = new BaseModule(
|
||||
path: $modulePath,
|
||||
name: $moduleName,
|
||||
enabled: module($moduleName)->isEnabled()
|
||||
);
|
||||
|
||||
// Include all
|
||||
if ($withDisabled) {
|
||||
$modules->push($module);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($module->enabled) {
|
||||
$modules->push($module);
|
||||
}
|
||||
}
|
||||
|
||||
temp_cache()->put('modules', $modules);
|
||||
|
||||
return $modules;
|
||||
/**
|
||||
* Empty module
|
||||
*/
|
||||
function emptyModule(): ModuleContract
|
||||
{
|
||||
return modular()->emptyModule();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user