Clockwork ist ein Entwicklungstool für PHP, das direkt in Ihrem Browser verfügbar ist. Clockwork gibt Ihnen einen Einblick in die Laufzeit Ihrer Anwendung – einschließlich Anforderungsdaten, Leistungsmetriken, Protokolleinträge, Datenbankabfragen, Cache-Abfragen, Redis-Befehle, versendete Ereignisse, Warteschlangenjobs, gerenderte Ansichten und mehr – für HTTP-Anfragen, Befehle, Warteschlangenjobs und Tests .
Dieses Repository enthält die serverseitige Komponente von Clockwork.
Weitere Informationen finden Sie auf der Clockwork-Website.
Installieren Sie die Clockwork-Bibliothek über Composer.
composer require itsgoingd/clockwork
Herzlichen Glückwunsch, Sie sind fertig! Um weitere Funktionen wie Befehle oder die Profilerstellung für Warteschlangenjobs zu aktivieren, veröffentlichen Sie die Konfigurationsdatei über den Befehl vendor:publish
Artisan“.
Hinweis: Wenn Sie den Laravel-Routen-Cache verwenden, müssen Sie ihn mit dem Artisan-Befehl route:cache aktualisieren.
Lesen Sie die vollständigen Installationsanweisungen auf der Clockwork-Website.
Die serverseitige Komponente von Clockwork sammelt und speichert Daten über Ihre Anwendung.
Clockwork ist nur aktiv, wenn sich Ihre App standardmäßig im Debug-Modus befindet. Sie können Clockwork explizit aktivieren oder deaktivieren oder Clockwork so einstellen, dass immer Daten erfasst werden, ohne dass diese für weitere Analysen verfügbar gemacht werden.
Wir sammeln standardmäßig eine ganze Reihe nützlicher Daten, aber Sie können in der Konfigurationsdatei weitere Funktionen aktivieren oder Funktionen deaktivieren, die Sie nicht benötigen.
Einige Funktionen ermöglichen möglicherweise erweiterte Optionen, z. Für Datenbankabfragen können Sie einen Schwellenwert für langsame Abfragen festlegen oder die Erkennung doppelter (N+1) Abfragen aktivieren. Schauen Sie sich die Konfigurationsdatei an, um zu sehen, was Clockwork alles kann.
Es gibt mehrere Optionen, mit denen Sie auswählen können, für welche Anfragen Clockwork aktiv ist.
Der On-Demand-Modus erfasst Daten nur, wenn die Clockwork-App geöffnet ist. Sie können sogar ein Geheimnis angeben, das in den App-Einstellungen festgelegt werden soll, um Anfragen zu sammeln. Bei „Nur Fehler“ werden nur Anfragen aufgezeichnet, die mit 4xx- und 5xx-Antworten enden. „Nur langsam“ erfasst nur Anfragen mit Antworten über dem eingestellten Langsamschwellenwert. Sie können die gesammelten und aufgezeichneten Anfragen auch nach einem benutzerdefinierten Abschluss filtern. CORS-Anfragen vor dem Flug werden standardmäßig nicht erfasst.
Neu in Clockwork 4.1: Jetzt können auch Artisan-Befehle, Queue-Jobs und Tests gesammelt werden, Sie müssen dies in der Konfigurationsdatei aktivieren.
Clockwork sammelt auch Stack-Traces für Daten wie Protokollnachrichten oder Datenbankabfragen. Standardmäßig werden die letzten 10 Frames der Ablaufverfolgung erfasst. Sie können das Frame-Limit ändern oder diese Funktion in der Konfigurationsdatei deaktivieren.
Besuchen Sie /clockwork
route, um die gesammelten Daten anzuzeigen und mit ihnen zu interagieren.
Die App zeigt alle ausgeführten Anfragen an, was nützlich ist, wenn die Anfrage nicht vom Browser erfolgt, sondern beispielsweise von einer mobilen Anwendung, für die Sie eine API entwickeln.
Für Chrome und Firefox ist auch eine Browser-Entwicklertools-Erweiterung verfügbar:
Clockwork bietet Ihnen jetzt die Möglichkeit, grundlegende Anfrageinformationen in Form einer Symbolleiste in Ihrer App anzuzeigen.
Die Symbolleiste wird vollständig clientseitig gerendert und erfordert die Installation einer kleinen Javascript-Bibliothek.
Erfahren Sie mehr auf der Clockwork-Website.
Sie können jede Variable über den Clock()-Helfer protokollieren, von einer einfachen Zeichenfolge bis zu einem Array oder Objekt, sogar mehrere Werte:
clock (User:: first (), auth ()-> user (), $ username )
Die Hilfsfunktion clock()
gibt ihr erstes Argument zurück, sodass Sie problemlos Inline-Debugging-Anweisungen zu Ihrem Code hinzufügen können:
User:: create ( clock ( $ request -> all ()))
Wenn Sie eine Protokollebene angeben möchten, können Sie den Langformaufruf verwenden:
clock ()-> info ( " User { $ username } logged in! " )
Timeline bietet Ihnen eine visuelle Darstellung Ihrer Anwendungslaufzeit.
Um ein Ereignis zur Zeitleiste hinzuzufügen, beginnen Sie es mit einer Beschreibung, führen Sie den verfolgten Code aus und beenden Sie das Ereignis. Zur weiteren Konfiguration des Ereignisses steht eine Fluent-API zur Verfügung.
// using timeline api with begin / end and fluent configuration
clock ()-> event ( ' Importing tweets ' )-> color ( ' purple ' )-> begin ();
. . .
clock ()-> event ( ' Importing tweets ' )-> end ();
Alternativ können Sie den verfolgten Codeblock als Abschluss ausführen. Sie können sich auch dafür entscheiden, eine Array-basierte Konfiguration anstelle der Fluent-API zu verwenden.
// using timeline api with run and array - based configuration
clock ()-> event ( ' Updating cache ' , [ ' color ' => ' green ' ])-> run ( function () {
. . .
});
Weitere Informationen zu den verfügbaren Funktionen finden Sie auf der Clockwork-Website.