*/ public array $values = []; public function mount(): void { $this->loadValues(); } public function save(): void { foreach ($this->values as $key => $value) { if (str_contains($value, "\n") || str_contains($value, "\r")) { $this->addError('values', "La valeur de {$key} ne peut pas contenir de retour à la ligne."); return; } } foreach (SettingsRegistry::configMap() as $envKey => $path) { $value = trim($this->values[$envKey] ?? ''); Setting::updateOrCreate(['key' => $envKey], ['value' => $value === '' ? null : $value]); } Cache::forget(SettingsRegistry::CACHE_KEY); session()->flash('status', 'Configuration enregistrée. Les nouvelles valeurs sont actives immédiatement.'); $this->loadValues(); } public function resetToDefault(string $envKey): void { if (! array_key_exists($envKey, SettingsRegistry::configMap())) { return; } Setting::where('key', $envKey)->delete(); Cache::forget(SettingsRegistry::CACHE_KEY); session()->flash('status', "Valeur par défaut restaurée pour {$envKey}."); $this->loadValues(); } protected function loadValues(): void { $stored = Setting::query()->pluck('value', 'key'); foreach (SettingsRegistry::configMap() as $envKey => $path) { $this->values[$envKey] = $stored[$envKey] ?? (string) (config($path) ?? ''); } } }; ?>

Configuration

Ces réglages sont stockés en base de données et prennent effet immédiatement, sans redémarrage. Les paramètres d'infrastructure (base de données, clé de chiffrement, pilote de session…) ne sont pas modifiables ici — ils doivent être changés directement dans le fichier .env du serveur.

@if (session('status'))
{{ session('status') }}
@endif @error('values')
{{ $message }}
@enderror
@foreach (\App\Services\SettingsRegistry::SETTINGS as $section => $keys)

{{ $section }}

@foreach ($keys as $envKey => $meta)
@if (\App\Services\SettingsRegistry::isSensitive($envKey))
@else @endif
@endforeach
@endforeach