public function register()
{
$this->app->singleton(['xe.module' => ModuleHandler::class], function ($app) {
$register = $app['xe.pluginRegister'];
$proxyClass = $app['xe.interception']->proxy(ModuleHandler::class, 'XeModule');
return new $proxyClass($register);
});
$this->app->singleton(['xe.menu' => MenuHandler::class], function ($app) {
$repo = new EloquentRepository($app['xe.keygen']);
if ($app['config']['app.debug'] !== true) {
$repo = new CacheDecorator($repo, new LaravelCache($app['cache.store']));
}
return new MenuHandler(new MemoryDecorator($repo), $app['xe.config'], $app['xe.module'], $app['xe.router']);
});
}