From c2209538db7b7dba3db264cecc77fb637d2b3b7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Fri, 4 Aug 2017 18:43:18 +0200 Subject: [PATCH] FEATURE: refactorize code little bit more --- app/CMS/Repositories/Module.php | 9 +++++++++ app/CMS/Repositories/Templates/Template.php | 10 +++++++--- app/Http/Middleware/AdminMenuRegistrator.php | 8 ++++---- app/ModuleManager/Providers/ModuleManager.php | 7 ++----- app/Providers/TemplateServiceProvider.php | 13 ++++++------- 5 files changed, 28 insertions(+), 19 deletions(-) diff --git a/app/CMS/Repositories/Module.php b/app/CMS/Repositories/Module.php index 0348ce57..0f3e70e1 100644 --- a/app/CMS/Repositories/Module.php +++ b/app/CMS/Repositories/Module.php @@ -60,6 +60,15 @@ class Module extends Repository implements IModule }); } + public function getOnlyModules() + { + return Cache::rememberForever('enabled-modules', function () { + return ModuleModel::where('enabled', true) + ->where('is_template', false) + ->get(); + }); + } + public function getByHandler($handler) { return ModuleModel::where('handler', $handler) diff --git a/app/CMS/Repositories/Templates/Template.php b/app/CMS/Repositories/Templates/Template.php index dff25732..1d80eff0 100644 --- a/app/CMS/Repositories/Templates/Template.php +++ b/app/CMS/Repositories/Templates/Template.php @@ -1,10 +1,12 @@ id) - ->select(['template_name', 'name', 'description']) - ->get(); + return Cache::rememberForever('templates-for-module', function () use ($module) { + return TemplateModel::where('module_id', $module->id) + ->select(['template_name', 'name', 'description']) + ->get(); + }); } } \ No newline at end of file diff --git a/app/Http/Middleware/AdminMenuRegistrator.php b/app/Http/Middleware/AdminMenuRegistrator.php index ca591767..3706e80e 100644 --- a/app/Http/Middleware/AdminMenuRegistrator.php +++ b/app/Http/Middleware/AdminMenuRegistrator.php @@ -3,7 +3,7 @@ namespace App\Http\Middleware; use App\CMS\Handlers\Handler; -use App\Models\Module; +use App\CMS\Repositories\Module as ModuleRepository; use Closure; use Illuminate\Support\Facades\Log; @@ -28,13 +28,13 @@ class AdminMenuRegistrator $user = \Auth::user(); Handler::registerAdminMenu($user); - $modules = Module::where('enabled', true) - ->get(); + $modules = app(ModuleRepository::class)->all(); // iterate over all enabled modules foreach ($modules as $key => $module) { - if (!is_callable([$module->handler, 'registerAdminMenu'])) + if (!is_callable([$module->handler, 'registerAdminMenu'])) { continue; + } // try to register menus try { diff --git a/app/ModuleManager/Providers/ModuleManager.php b/app/ModuleManager/Providers/ModuleManager.php index c7c3ef47..e54c2e46 100644 --- a/app/ModuleManager/Providers/ModuleManager.php +++ b/app/ModuleManager/Providers/ModuleManager.php @@ -2,6 +2,7 @@ namespace App\ModuleManager\Providers; +use App\CMS\Repositories\Module as ModuleRepository; use App\Models\Module; use Illuminate\Support\Facades\Cache; use Illuminate\Support\ServiceProvider; @@ -15,11 +16,7 @@ class ModuleManager extends ServiceProvider public function boot() { // this service provider needs published config - config is merged right after this service provider - $modules = Cache::rememberForever('enabled-modules', function () { - return Module::where('enabled', true) - ->where('is_template', false) - ->get(); - }); + $modules = app(ModuleRepository::class)->getOnlyModules(); // iterate over all modules and enable or disable them foreach ($modules as $module) { diff --git a/app/Providers/TemplateServiceProvider.php b/app/Providers/TemplateServiceProvider.php index 55b4c42f..9d793808 100644 --- a/app/Providers/TemplateServiceProvider.php +++ b/app/Providers/TemplateServiceProvider.php @@ -5,7 +5,7 @@ namespace App\Providers; use App\CMS\Contracts\Repositories\Template as TemplateContract; use App\CMS\Handlers\Registrators\TemplateRegistrator; use App\CMS\Helpers\CurrentTemplate; -use App\Models\Module; +use App\CMS\Repositories\Module; use Illuminate\Support\Facades\App; use Illuminate\Support\ServiceProvider; @@ -45,10 +45,10 @@ class TemplateServiceProvider extends ServiceProvider public function registerTemplatePaths($publicTemplates) { - $modules = Module::where('enabled', true) - ->get() - ->pluck('id', 'alias') - ->toArray(); + $modules = app(Module::class) + ->all() + ->pluck('id', 'alias') + ->toArray(); /** * @var $registrator TemplateRegistrator @@ -77,7 +77,6 @@ class TemplateServiceProvider extends ServiceProvider /** * Register the service provider. - * * @return void */ public function register() @@ -94,7 +93,7 @@ class TemplateServiceProvider extends ServiceProvider return; } - $templateDir = base_path('templates/' . $template->static_name. '/Resources'); + $templateDir = base_path('templates/' . $template->static_name . '/Resources'); $assetsDir = $templateDir . '/' . TemplateContract::ASSETS_DIRECTORY; $viewsDir = $templateDir . '/views';