chore: complete update
This commit is contained in:
74
src/Framework/Console/ExitCode.php
Normal file
74
src/Framework/Console/ExitCode.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Framework\Console;
|
||||
|
||||
/**
|
||||
* Standard Exit-Codes für Console-Anwendungen
|
||||
*
|
||||
* Basiert auf den POSIX-Standards und bewährten Praktiken:
|
||||
* - 0: Erfolg
|
||||
* - 1: Allgemeiner Fehler
|
||||
* - 2: Falsche Verwendung (ungültige Argumente)
|
||||
* - 64-78: Spezifische Fehler-Codes (sysexits.h Standard)
|
||||
*/
|
||||
enum ExitCode: int
|
||||
{
|
||||
case SUCCESS = 0;
|
||||
case GENERAL_ERROR = 1;
|
||||
case USAGE_ERROR = 2;
|
||||
case COMMAND_NOT_FOUND = 64;
|
||||
case INVALID_INPUT = 65;
|
||||
case NO_INPUT = 66;
|
||||
case UNAVAILABLE = 69;
|
||||
case SOFTWARE_ERROR = 70;
|
||||
case OS_ERROR = 71;
|
||||
case OS_FILE_ERROR = 72;
|
||||
case CANT_CREATE = 73;
|
||||
case IO_ERROR = 74;
|
||||
case TEMP_FAIL = 75;
|
||||
case PROTOCOL_ERROR = 76;
|
||||
case NO_PERMISSION = 77;
|
||||
case CONFIG_ERROR = 78;
|
||||
|
||||
/**
|
||||
* Gibt eine menschenlesbare Beschreibung des Exit-Codes zurück
|
||||
*/
|
||||
public function getDescription(): string
|
||||
{
|
||||
return match($this) {
|
||||
self::SUCCESS => 'Erfolgreich abgeschlossen',
|
||||
self::GENERAL_ERROR => 'Allgemeiner Fehler',
|
||||
self::USAGE_ERROR => 'Falsche Verwendung oder ungültige Argumente',
|
||||
self::COMMAND_NOT_FOUND => 'Kommando nicht gefunden',
|
||||
self::INVALID_INPUT => 'Ungültige Eingabedaten',
|
||||
self::NO_INPUT => 'Keine Eingabe vorhanden',
|
||||
self::UNAVAILABLE => 'Service nicht verfügbar',
|
||||
self::SOFTWARE_ERROR => 'Interner Software-Fehler',
|
||||
self::OS_ERROR => 'Betriebssystem-Fehler',
|
||||
self::OS_FILE_ERROR => 'Datei-/Verzeichnis-Fehler',
|
||||
self::CANT_CREATE => 'Kann Datei/Verzeichnis nicht erstellen',
|
||||
self::IO_ERROR => 'Ein-/Ausgabe-Fehler',
|
||||
self::TEMP_FAIL => 'Temporärer Fehler',
|
||||
self::PROTOCOL_ERROR => 'Protokoll-Fehler',
|
||||
self::NO_PERMISSION => 'Keine Berechtigung',
|
||||
self::CONFIG_ERROR => 'Konfigurationsfehler',
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft, ob der Exit-Code einen Erfolg darstellt
|
||||
*/
|
||||
public function isSuccess(): bool
|
||||
{
|
||||
return $this === self::SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft, ob der Exit-Code einen Fehler darstellt
|
||||
*/
|
||||
public function isError(): bool
|
||||
{
|
||||
return !$this->isSuccess();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user