42 lines
1.2 KiB
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;
|
|
}
|
|
}
|