Heim  >  Artikel  >  PHP-Framework  >  SQL-Debug-Tipps in Laravel

SQL-Debug-Tipps in Laravel

Guanhui
Guanhuinach vorne
2020-06-12 17:56:193120Durchsuche

SQL-Debug-Tipps in Laravel

Aus bestimmten Gründen können Sie Laravel DebugBar nicht verwenden. Dieser Artikel kann Ihnen helfen.

Die Optimierung von Laravel-Anwendungen geht weit über die Beseitigung des N+1-Problems hinaus. Die ordnungsgemäße Verwendung von Laravel DebugBar kann sinnvolle Lösungen für Probleme wie die Modellspeichernutzung und die Aktualität von SQL-Abfragen bieten.

Vielleicht möchten Sie Laravel DebugBar nicht verwenden oder können es aus bestimmten Gründen nicht verwenden (z. B. schnittstellenbasierte Anwendungsentwicklung). Dann ist der Datenbank-Listener eine gute Methode SQL-Abfrage zum Protokollieren.

Dies gilt auch in Produktionsumgebungen und Testumgebungen. Sie können einfach steuern, ob es über env oder config aktiviert ist.

Verwendung:

Fügen Sie dies zur Startmethode Ihres AppServiceProviders hinzu

 if (env("SQL_DEBUG_LOG"))
    {
        DB::listen(function ($query) {
            Log::debug("DB: " . $query->sql . "[".  implode(",",$query->bindings). "]");
        });
    }

Wenn Sie es in einer Produktionsumgebung verwenden, empfehle ich Ihnen, es in die Konfiguration einzufügen die Konfigurationsinformationen in env, und dann können (und sollten) Sie diese Konfigurationsinformationen zwischenspeichern

Ich habe ein weiteres Problem festgestellt, das darin besteht, dass, wenn der SQL-Aufruf selbst fehlschlägt, eine Ausnahme ausgelöst wird und vor dem Erfolg abgehört wird Der Aufruf DB::listen protokolliert nicht und die Ausnahme tritt auf, bevor er zum Listener zurückkehrt.

Empfohlene Tutorials: „PHP-Tutorial“ „Laravel-Tutorial

Das obige ist der detaillierte Inhalt vonSQL-Debug-Tipps in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen