Files
michaelschiemer/src/Framework/Debug
Michael Schiemer 55a330b223 Enable Discovery debug logging for production troubleshooting
- Add DISCOVERY_LOG_LEVEL=debug
- Add DISCOVERY_SHOW_PROGRESS=true
- Temporary changes for debugging InitializerProcessor fixes on production
2025-08-11 20:13:26 +02:00
..
2025-07-17 16:24:20 +02:00
2025-07-17 16:24:20 +02:00
2025-07-17 16:24:20 +02:00
2025-07-17 16:24:20 +02:00
2025-07-17 16:24:20 +02:00
2025-07-17 16:24:20 +02:00
2025-07-17 16:24:20 +02:00

Framework Debug-Modul

Dieses Modul bietet eine übersichtlichere Alternative zu var_dump und vereinfacht das Debugging in der Anwendung.

Features

  • Übersichtliche Formatierung - Besser lesbar als var_dump
  • Kontext-Informationen - Zeigt Datei, Zeile, Zeit und Speicherverbrauch
  • Verschiedene Ausgabeformate - HTML für Browser, Konsole für CLI
  • Spezialisierte Funktionen - Für Arrays und Objekte optimiert
  • Debug-Historie - Verfolgt alle Debug-Aufrufe
  • Einfache Konfiguration - Kann für verschiedene Umgebungen aktiviert/deaktiviert werden
  • Erweiterbar - Eigene Formatter und Outputs möglich

Verwendung

Einfaches Debugging

// Variable debuggen
debug($variable, 'Meine Variable');

// Debuggen und Ausführung beenden
dd($variable, 'Fehleranalyse');

// Array-spezifisches Debugging
debug_array(['a' => 1, 'b' => 2], 'Mein Array');

// Objekt-Debugging mit Methoden- und Property-Liste
$user = new User();
debug_object($user, 'Benutzer');

// Einfache Log-Nachrichten
debug_log('Benutzer wurde erstellt', 'INFO');

// Historie aller Debug-Aufrufe anzeigen
debug_history();

Konfiguration

// In Bootstrap-Datei oder Service-Provider
use App\Framework\Debug\Debugger;
use App\Framework\Debug\Outputs\HtmlOutput;
use App\Framework\Debug\Formatters\HtmlFormatter;

// Für Entwicklungsumgebung aktivieren
Debugger::configure(
    enabled: true,
    output: new HtmlOutput(),
    formatter: new HtmlFormatter()
);

// In Produktionsumgebung deaktivieren
if ($app->isProduction()) {
    Debugger::disable();
}

Eigene Formatierung und Ausgabe

Das Modul kann durch eigene Implementierungen von FormatterInterface und OutputInterface erweitert werden.

namespace App\Debug;

use App\Framework\Debug\Formatters\FormatterInterface;
use App\Framework\Debug\DebugEntry;

class MyCustomFormatter implements FormatterInterface
{
    public function format(DebugEntry $entry): string
    {
        // Eigene Formatierung implementieren
    }

    public function formatHistory(array $entries): string
    {
        // Eigene Formatierung für Historie
    }

    public function formatValue(mixed $value): string
    {
        // Eigene Formatierung für Werte
    }
}

Integration

Um die Helper-Funktionen global verfügbar zu machen, fügen Sie die folgende Zeile zu Ihrer Composer-Datei hinzu:

{
    "autoload": {
        "files": [
            "src/Framework/Debug/helpers.php"
        ]
    }
}

Dann führen Sie composer dump-autoload aus.