Dies ist ein Paket zur Integration von PHP -Debug -Bar in Laravel. Es enthält einen ServiceProvider, um die Debugreise zu registrieren und an die Ausgabe zu befestigen. Sie können Vermögenswerte veröffentlichen und über Laravel konfigurieren. Es stellt einige Sammler mit Laravel aus und implementiert einige benutzerdefinierte DataCollektoren, die für Laravel spezifisch sind. Es ist so konfiguriert, dass sie Ausleitungen und (jQuery) AJAX -Anforderungen angezeigt werden. (In einem Dropdown gezeigt) Lesen Sie die Dokumentation für weitere Konfigurationsoptionen.

Vorsicht
Verwenden Sie die Debugbar nur in der Entwicklung. Verwenden Sie keine Debugbar auf öffentlich zugänglichen Websites, da sie Informationen von gespeicherten Anfragen (nach Design) auslaufen lassen.
Warnung
Es kann auch die Anwendung verlangsamen (da es Daten sammeln und rendern muss). Versuchen Sie, einige der Sammler zu deaktivieren, wenn Sie eine Langsamkeit erleben.
Dieses Paket enthält einige kundenspezifische Sammler:
Stafert die folgenden Sammler für Laravel:
Und die Standardsammler:
Es bietet auch eine Fassadeschnittstelle ( Debugbar ) für einfache Protokollierungsnachrichten, Ausnahmen und Zeit
Erfordern Sie dieses Paket mit Komponisten. Es wird empfohlen, das Paket nur für die Entwicklung zu verlangen.
composer require barryvdh/laravel-debugbar --devLaravel verwendet eine Paket automatische Entdeckung, daher müssen Sie den ServiceProvider nicht manuell hinzufügen.
Die Debugbar wird aktiviert, wenn APP_DEBUG true ist.
Wenn Sie eine Catch-All-/Fallback-Route verwenden, laden Sie den Debugbar ServiceProvider vor Ihren eigenen App ServiceProviders.
Wenn Sie keine automatische Entdeckung verwenden, fügen Sie den ServiceProvider in die Liste der Anbieter hinzu. Fügen Sie für Laravel 11 oder neuer den ServiceProvider in Bootstrap/Providers.php hinzu. Fügen Sie für Laravel 10 oder älter den ServiceProvider in config/app.php hinzu.
Barryvdh Debugbar ServiceProvider::class, Wenn Sie die Fassade zum Protokollieren von Nachrichten verwenden möchten, fügen Sie diese in die register der app/Providers/AppServiceProvider.php -Klasse hinzu:
public function register (): void
{
$ loader = Illuminate Foundation AliasLoader:: getInstance ();
$ loader -> alias ( ' Debugbar ' , Barryvdh Debugbar Facades Debugbar::class);
} Der Profiler ist standardmäßig aktiviert, wenn Sie app_debug = true haben. Sie können dies in der Konfiguration ( debugbar.enabled ) oder durch Einstellen DEBUGBAR_ENABLED in Ihrem .env überschreiben. Weitere Optionen finden Sie in config/debugbar.php Sie können auch in Ihrer Konfiguration festlegen, wenn Sie auch die Anbieterdateien einfügen/ausschließen möchten (Fontawesome, highlight.js und jQuery). Wenn Sie sie bereits auf Ihrer Website verwenden, stellen Sie sie auf false ein. Sie können auch die JS- oder CSS -Anbieter nur anzeigen, indem Sie sie auf 'JS' oder 'CSS' einstellen. (Highlight.js erfordert beide CSS + JS, sodass für die Syntax -Hervorhebung auf true eingestellt ist.)
php artisan vendor:publish --provider= " BarryvdhDebugbarServiceProvider " Fügen Sie Ihre Flush -Liste in config/octane.php zu LaravelDebugbar zu Ihrer Flush -Liste hinzu.
' flush ' => [
Barryvdh Debugbar LaravelDebugbar::class,
], Registrieren Sie für Lumen einen anderen Anbieter in bootstrap/app.php :
if ( env ( ' APP_DEBUG ' )) {
$ app -> register ( Barryvdh Debugbar LumenServiceProvider::class);
}Um die Konfiguration zu ändern, kopieren Sie die Datei in Ihren Konfigurationsordner und aktivieren Sie sie:
$ app -> configure ( ' debugbar ' );Sie können jetzt Nachrichten mit der Fassade (wenn hinzugefügt) unter Verwendung der PSR-3-Ebenen (Debug, Info, Hinweis, Warnung, Fehler, kritischer, Alarms, Notfall) hinzufügen:
Debugbar:: info ( $ object );
Debugbar:: error ( ' Error! ' );
Debugbar:: warning ( ' Watch out… ' );
Debugbar:: addMessage ( ' Another message ' , ' mylabel ' );Und starten/stoppen Sie das Timing:
Debugbar:: startMeasure ( ' render ' , ' Time for rendering ' );
Debugbar:: stopMeasure ( ' render ' );
Debugbar:: addMeasure ( ' now ' , LARAVEL_START , microtime ( true ));
Debugbar:: measure ( ' My long operation ' , function () {
// Do something…
});Oder Protokollausnahmen:
try {
throw new Exception ( ' foobar ' );
} catch ( Exception $ e ) {
Debugbar:: addThrowable ( $ e );
}Für die häufigsten Anrufe stehen auch Helferfunktionen zur Verfügung:
// All arguments will be dumped as a debug message
debug ( $ var1 , $ someString , $ intValue , $ object );
// `$collection->debug()` will return the collection and dump it as a debug message. Like `$collection->dump()`
collect ([ $ var1 , $ someString ])-> debug ();
start_measure ( ' render ' , ' Time for rendering ' );
stop_measure ( ' render ' );
add_measure ( ' now ' , LARAVEL_START , microtime ( true ));
measure ( ' My long operation ' , function () {
// Do something…
});Wenn Sie möchten, können Sie über den Container oder die Fassade Ihre eigenen DataCollektoren hinzufügen:
Debugbar:: addCollector ( new DebugBar DataCollector MessagesCollector ( ' my_messages ' ));
//Or via the App container:
$ debugbar = App:: make ( ' debugbar ' );
$ debugbar -> addCollector ( new DebugBar DataCollector MessagesCollector ( ' my_messages ' )); Standardmäßig wird die Debugbar kurz vor </body> injiziert. Wenn Sie die Debugbar selbst injizieren möchten, stellen Sie die Konfigurationsoption "Inject" auf False ein und verwenden Sie den Renderer selbst und folgen Sie http://phpdebugbar.com/docs/renderering.html
$ renderer = Debugbar:: getJavascriptRenderer ();HINWEIS: Wenn Sie das Auto-Injekt nicht verwenden, deaktivieren Sie die Anforderungsinformationen, da dies nach der Antwort hinzugefügt wird. Sie können den DataCollector für Standard -DataCollector in der Konfiguration als Alternative hinzufügen.
Sie können die Debugbar während der Laufzeit aktivieren oder deaktivieren.
Debugbar:: enable ();
Debugbar:: disable ();NB. Sobald Sie aktiviert sind, werden die Sammler hinzugefügt (und können zusätzliche Overheads erzeugen). Wenn Sie also die Debugch in der Produktion verwenden möchten, deaktivieren Sie die Konfiguration und aktivieren Sie nur bei Bedarf.
Die Debugbar erinnert sich an frühere Anfragen, die Sie mit der Schaltfläche "Durchsuchen" auf der rechten Seite anzeigen können. Dies funktioniert nur, wenn Sie debugbar.storage.open in der Konfiguration aktivieren. Stellen Sie sicher, dass Sie dies nur in der lokalen Entwicklung tun, da andere Personen frühere Anfragen anzeigen können. Im Allgemeinen sollte Debugbar nur lokal oder zumindest durch IP eingeschränkt werden. Es ist möglich, einen Rückruf zu übergeben, der das Anforderungsobjekt empfängt, sodass Sie den Zugriff auf den OpenHandler -Speicher ermitteln können.
Die Laravel -Debugbar wird mit zwei Zweigweiterungen ausgestattet. Diese werden mit RCROWE/TWIGBRIDGE 0.6.x getestet
Fügen Sie Ihren Twigbridge config/Extensions.php die folgenden Erweiterungen hinzu (oder registrieren Sie die Erweiterungen manuell).
' BarryvdhDebugbarTwigExtensionDebug ' ,
' BarryvdhDebugbarTwigExtensionDump ' ,
' BarryvdhDebugbarTwigExtensionStopwatch ' , Die Dump -Erweiterung ersetzt die Dump -Funktion für Ausgabevariablen mithilfe des DataFormatter. Die Debug -Erweiterung fügt eine debug() -Funktion hinzu, die Variablen an den Nachrichtensammler übergibt, anstatt sie direkt in der Vorlage anzuzeigen. Es lässt die Argumente ab oder wenn es leer ist; Alle Kontextvariablen.
{{ debug() }}
{{ debug( user , categories ) }}Die Stopwatch -Erweiterung fügt ein Stoppuhr -Tag hinzu, ähnlich dem in Symfony/Silex Twigbridge.
{% stopwatch " foo " %}
…some things that gets timed
{% endstopwatch %}