app->singleton(SettingsRepository::class, fn() => new SettingsRepository()); } /** * Bootstrap any application services. */ public function boot(\App\Support\SettingsRepository $settings): void { Domain::observe(DomainObserver::class); config(['app.version' => trim(@file_get_contents('/var/lib/mailwolt/version')) ?: 'dev']); if (file_exists(base_path('.git/HEAD'))) { $ref = trim(file_get_contents(base_path('.git/HEAD'))); if (str_starts_with($ref, 'ref:')) { $refFile = base_path('.git/' . substr($ref, 5)); $commit = @file_get_contents($refFile); } else { $commit = $ref; } config(['app.git_commit' => substr($commit ?? '', 0, 7)]); } try { $S = app(\App\Support\SettingsRepository::class); // 🕒 Zeitzone if ($tz = $S->get('system.timezone')) { config(['app.timezone' => $tz]); date_default_timezone_set($tz); } // 🌐 Sprache if ($locale = $S->get('system.locale')) { app()->setLocale($locale); } // 🌍 Domain / URL if ($domain = $S->get('app.domain')) { $scheme = $S->get('app.force_https', true) ? 'https' : 'http'; config(['app.url' => "{$scheme}://{$domain}"]); URL::forceRootUrl(config('app.url')); if ($scheme === 'https') { URL::forceScheme('https'); } } } catch (\Throwable $e) { // Keine Exceptions beim Booten, z. B. wenn DB oder Redis noch nicht erreichbar sind // \Log::warning('settings.boot_failed', ['msg' => $e->getMessage()]); } } // public function boot(SettingsRepository $settings): void // { // try { // $S = app(\App\Support\SettingsRepository::class); // if ($tz = $S->get('app.timezone')) { // config(['app.timezone' => $tz]); // date_default_timezone_set($tz); // } // if ($domain = $S->get('app.domain')) { // // Falls du APP_URL dynamisch überschreiben willst: // $scheme = $S->get('app.force_https', true) ? 'https' : 'http'; // config(['app.url' => $scheme.'://'.$domain]); // URL::forceRootUrl(config('app.url')); // if ($scheme === 'https') { // URL::forceScheme('https'); // } // } // } catch (\Throwable $e) { // // Im Bootstrap/Wartungsmodus still sein // } // } }