components->info('Installing Routes resources.'); collect([ 'Service Provider' => fn () => $this->callSilent('vendor:publish', ['--tag' => 'routes-provider']) == 0, 'Configuration' => fn () => $this->callSilent('vendor:publish', ['--tag' => 'routes-config']) == 0, ])->each(fn ($task, $description) => $this->components->task($description, $task)); $this->registerRouteServiceProvider(); $this->components->info('Jltx Routes scaffolding installed successfully.'); } /** * Register the Horizon service provider in the application configuration file. */ protected function registerRouteServiceProvider(): void { $namespace = Str::replaceLast('\\', '', $this->laravel->getNamespace()); if (file_exists($this->laravel->bootstrapPath('providers.php'))) { ServiceProvider::addProviderToBootstrapFile("$namespace\\Providers\\RouteServiceProvider"); } else { $appConfig = file_get_contents(config_path('app.php')); if (Str::contains($appConfig, $namespace.'\\Providers\\RouteServiceProvider::class')) { return; } file_put_contents(config_path('app.php'), str_replace( "{$namespace}\\Providers\EventServiceProvider::class,".PHP_EOL, "{$namespace}\\Providers\EventServiceProvider::class,".PHP_EOL." {$namespace}\Providers\RouteServiceProvider::class,".PHP_EOL, $appConfig )); } file_put_contents(app_path('Providers/RouteServiceProvider.php'), str_replace( "namespace App\Providers;", "namespace {$namespace}\Providers;", file_get_contents(app_path('Providers/RouteServiceProvider.php')) )); } }