CluPilotCloud/app/Support/OperatingMode.php

42 lines
1.2 KiB
PHP

<?php
namespace App\Support;
/**
* Test oder Live — welcher Satz Zugangsdaten gilt.
*
* In `Settings` und nicht in der `.env`, weil `Settings` seinen Zwischenspeicher
* beim Schreiben verwirft: ein Umlegen wirkt sofort, auch in den
* Warteschlangen-Prozessen, die seit Stunden laufen. Eine `.env`-Variable
* bräuchte einen Containerneustart — genau die Falle, die am 2026-07-30 eine
* korrigierte DNS-Zone acht Stunden lang wirkungslos gelassen hat.
*
* Live ist die Vorgabe. Eine Installation, die nichts gespeichert hat, soll
* nicht in einem Modus stehen, der stillschweigend andere Zugangsdaten benutzt.
*/
enum OperatingMode: string
{
case Test = 'test';
case Live = 'live';
public const SETTING = 'platform.mode';
public static function current(): self
{
// tryFrom, nicht from: ein unbekannter Wert in der Zeile ist ein
// Datenfehler und darf nicht jede Anfrage in eine Ausnahme werfen.
return self::tryFrom((string) Settings::get(self::SETTING, self::Live->value))
?? self::Live;
}
public static function set(self $mode): void
{
Settings::set(self::SETTING, $mode->value);
}
public function isTest(): bool
{
return $this === self::Test;
}
}