FEATURE: refactorize code little bit more

This commit is contained in:
Michal Kváček
2017-08-04 18:43:18 +02:00
parent 25d9ded124
commit c2209538db
5 changed files with 28 additions and 19 deletions
+9
View File
@@ -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) public function getByHandler($handler)
{ {
return ModuleModel::where('handler', $handler) return ModuleModel::where('handler', $handler)
@@ -1,10 +1,12 @@
<?php <?php
namespace App\Cms\Repositories\Templates; namespace App\Cms\Repositories\Templates;
use App\CMS\Contracts\Repositories\Template as ITemplate; use App\CMS\Contracts\Repositories\Template as ITemplate;
use App\CMS\Repositories\Repository; use App\CMS\Repositories\Repository;
use App\Models\Module; use App\Models\Module;
use App\Models\Templates\Template as TemplateModel; use App\Models\Templates\Template as TemplateModel;
use Illuminate\Support\Facades\Cache;
class Template extends Repository implements ITemplate class Template extends Repository implements ITemplate
{ {
@@ -68,8 +70,10 @@ class Template extends Repository implements ITemplate
public function getForModule(Module $module) public function getForModule(Module $module)
{ {
return Cache::rememberForever('templates-for-module', function () use ($module) {
return TemplateModel::where('module_id', $module->id) return TemplateModel::where('module_id', $module->id)
->select(['template_name', 'name', 'description']) ->select(['template_name', 'name', 'description'])
->get(); ->get();
});
} }
} }
+4 -4
View File
@@ -3,7 +3,7 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use App\CMS\Handlers\Handler; use App\CMS\Handlers\Handler;
use App\Models\Module; use App\CMS\Repositories\Module as ModuleRepository;
use Closure; use Closure;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@@ -28,13 +28,13 @@ class AdminMenuRegistrator
$user = \Auth::user(); $user = \Auth::user();
Handler::registerAdminMenu($user); Handler::registerAdminMenu($user);
$modules = Module::where('enabled', true) $modules = app(ModuleRepository::class)->all();
->get();
// iterate over all enabled modules // iterate over all enabled modules
foreach ($modules as $key => $module) { foreach ($modules as $key => $module) {
if (!is_callable([$module->handler, 'registerAdminMenu'])) if (!is_callable([$module->handler, 'registerAdminMenu'])) {
continue; continue;
}
// try to register menus // try to register menus
try { try {
@@ -2,6 +2,7 @@
namespace App\ModuleManager\Providers; namespace App\ModuleManager\Providers;
use App\CMS\Repositories\Module as ModuleRepository;
use App\Models\Module; use App\Models\Module;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
@@ -15,11 +16,7 @@ class ModuleManager extends ServiceProvider
public function boot() public function boot()
{ {
// this service provider needs published config - config is merged right after this service provider // this service provider needs published config - config is merged right after this service provider
$modules = Cache::rememberForever('enabled-modules', function () { $modules = app(ModuleRepository::class)->getOnlyModules();
return Module::where('enabled', true)
->where('is_template', false)
->get();
});
// iterate over all modules and enable or disable them // iterate over all modules and enable or disable them
foreach ($modules as $module) { foreach ($modules as $module) {
+4 -5
View File
@@ -5,7 +5,7 @@ namespace App\Providers;
use App\CMS\Contracts\Repositories\Template as TemplateContract; use App\CMS\Contracts\Repositories\Template as TemplateContract;
use App\CMS\Handlers\Registrators\TemplateRegistrator; use App\CMS\Handlers\Registrators\TemplateRegistrator;
use App\CMS\Helpers\CurrentTemplate; use App\CMS\Helpers\CurrentTemplate;
use App\Models\Module; use App\CMS\Repositories\Module;
use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\App;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
@@ -45,8 +45,8 @@ class TemplateServiceProvider extends ServiceProvider
public function registerTemplatePaths($publicTemplates) public function registerTemplatePaths($publicTemplates)
{ {
$modules = Module::where('enabled', true) $modules = app(Module::class)
->get() ->all()
->pluck('id', 'alias') ->pluck('id', 'alias')
->toArray(); ->toArray();
@@ -77,7 +77,6 @@ class TemplateServiceProvider extends ServiceProvider
/** /**
* Register the service provider. * Register the service provider.
*
* @return void * @return void
*/ */
public function register() public function register()
@@ -94,7 +93,7 @@ class TemplateServiceProvider extends ServiceProvider
return; return;
} }
$templateDir = base_path('templates/' . $template->static_name. '/Resources'); $templateDir = base_path('templates/' . $template->static_name . '/Resources');
$assetsDir = $templateDir . '/' . TemplateContract::ASSETS_DIRECTORY; $assetsDir = $templateDir . '/' . TemplateContract::ASSETS_DIRECTORY;
$viewsDir = $templateDir . '/views'; $viewsDir = $templateDir . '/views';