mergeConfigFrom( base_path('config/domains.php'), 'domains' ); } /** * Bootstrap services. */ public function boot(): void { $host = Request::getHost(); // is domain_name $themeOverride = Request::get('theme'); // Allow theme override via URL parameter // Standard-Werte für Domain, die nicht in der Konfiguration sind $domainConfig = [ 'name' => config('app.name'), 'theme' => 'portal', 'view_prefix' => 'portal', 'assets_dir' => 'build/portal', 'url' => config('app.url'), 'domain_name' => config('app.domain_name'), ]; // Lade die Domain-Konfiguration $confiDomains = config('domains.domains'); // Suche nach der aktuellen Domain in der Konfiguration foreach ($confiDomains as $name => $config) { if (is_array($config) && isset($config['domain_name']) && $config['domain_name'] === $host) { $domainConfig = array_merge($domainConfig, $config); break; } } // Allow theme override via URL parameter (for testing) if ($themeOverride && isset($confiDomains[$themeOverride])) { $domainConfig = array_merge($domainConfig, $confiDomains[$themeOverride]); } // Grundlegende Konfiguration im Anwendungskontext verfügbar machen config([ 'app.theme' => $domainConfig['theme'], 'app.view_prefix' => $domainConfig['view_prefix'], 'app.domain_name' => $domainConfig['domain_name'], 'app.url' => $domainConfig['url'], 'app.asset_url' => $domainConfig['asset_url'] ?? $domainConfig['url'], ]); // Spezifischere Daten für die Views verfügbar machen View::share('theme', $domainConfig['theme']); View::share('viewPrefix', $domainConfig['view_prefix']); View::share('domainName', $domainConfig['domain_name']); View::share('domainConfig', $domainConfig); View::share('domainUrl', $domainConfig['url']); // Vite-Assets-Konfiguration für die aktuelle Domain if (! app()->runningInConsole() && isset($domainConfig['assets_dir'])) { Vite::useBuildDirectory($domainConfig['assets_dir']); // Setze die Asset-URL für Vite Dev-Server if (isset($domainConfig['asset_url'])) { // Erstelle temporäre Hot-File mit der richtigen Asset-URL $hotFile = public_path('hot'); if (file_exists($hotFile)) { file_put_contents($hotFile, $domainConfig['asset_url']); } Vite::useHotFile($hotFile); } } } }