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!