registerTranslations(); $this->registerConfig(); $this->registerViews(); $this->loadMigrationsFrom(module_path($this->moduleName, 'Database/Migrations')); $this->registerCommands(); $this->registerScheduleCommands(); View::composer('assetexchange::*', function ($view) { $view->with('aexUtil', app(AssetExchangeUtil::class)); }); } public function register() { $this->app->register(RouteServiceProvider::class); } protected function registerCommands(): void { $this->commands([ \Modules\AssetExchange\Console\AssetExchangeDailyDigest::class, \Modules\AssetExchange\Console\AssetExchangeSmokeCheck::class, \Modules\AssetExchange\Console\AssetExchangeSeedDemo::class, \Modules\AssetExchange\Console\AssetExchangeUiCheck::class, ]); } protected function registerScheduleCommands(): void { $module_util = new \App\Utils\ModuleUtil(); $is_installed = $module_util->isModuleInstalled('AssetExchange'); if ($is_installed) { $this->app->booted(function () { $schedule = $this->app->make(\Illuminate\Console\Scheduling\Schedule::class); $schedule->command('pos:assetexchangeDailyDigest')->dailyAt('08:30'); }); } } protected function registerConfig() { $this->mergeConfigFrom( module_path($this->moduleName, 'Config/config.php'), $this->moduleNameLower ); } public function registerViews() { $viewPath = resource_path('views/modules/'.$this->moduleNameLower); $sourcePath = module_path($this->moduleName, 'Resources/views'); $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower); } public function registerTranslations() { $langPath = resource_path('lang/modules/'.$this->moduleNameLower); if (is_dir($langPath)) { $this->loadTranslationsFrom($langPath, $this->moduleNameLower); } else { $this->loadTranslationsFrom(module_path($this->moduleName, 'Resources/lang'), $this->moduleNameLower); } } private function getPublishableViewPaths(): array { $paths = []; foreach (\Config::get('view.paths') as $path) { if (is_dir($path.'/modules/'.$this->moduleNameLower)) { $paths[] = $path.'/modules/'.$this->moduleNameLower; } } return $paths; } }