# 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 ```php // 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 ```php // 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. ```php 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: ```json { "autoload": { "files": [ "src/Framework/Debug/helpers.php" ] } } ``` Dann führen Sie `composer dump-autoload` aus.