Heim > Backend-Entwicklung > PHP-Tutorial > Analyse eines PHP -Projekts mit Jenkins

Analyse eines PHP -Projekts mit Jenkins

尊渡假赌尊渡假赌尊渡假赌
Freigeben: 2025-02-19 11:41:12
Original
261 Leute haben es durchsucht

Jenkins: kontinuierliches Integrations- und Lieferwerkzeug für PHP -Projekte

Jenkins, ein open -Source -automatisierter Server, der eine Schlüsselrolle bei der kontinuierlichen Integration und der kontinuierlichen Abgabe von PHP -Projekten spielt, kann Fehler in Echtzeit und kontinuierlich Feedback -Code -Qualitätsverbesserungsvorschlägen erkennen und beheben.

Die Kraft der Jenkins -Integration mit PHP -Tools

Jenkins ist mit einer Vielzahl von PHP -Projekt -Tools kompatibel, einschließlich PHP -CodesNiffer, PHP MD, PHP CPD, PHP Depel, PHPLOC, PHPUnit und PHPDOX, und jedes Tool bietet eindeutige Codeanalyse -Erkenntnisse und -metriken. Der Vorteil von Jenkins besteht darin, dass es Diagramme und Übersichten generieren kann, wodurch Probleme effizienter als das Abrufen von Befehlszeilen dargestellt werden, wodurch es einfacher ist, Probleme in Ihrem Code zu identifizieren und zu beheben.

Zusätzlich zu den bereits eingerichteten Tools sammelt Jenkins zusätzliche Informationen wie einen Überblick über PHP -CodesNiffer-, PHP -MD- und PHP -CPD -Verstöße sowie einen Überblick über „Änderungen“, die alle Commits zwischen jedem Build zeigen.

Interpretation der Jenkins -Ergebnisse: Projektansicht und Build View

Die Ergebnisse von Jenkins stammen aus verschiedenen Werkzeugen und werden an verschiedenen Stellen in der Jenkins -GUI platziert. Wir werden zwei verschiedene Seiten durchsuchen. Erstens ist die Projektansichtsseite, wobei der Projektname oben angezeigt wird. Auf dieser Seite erhalten Sie einen Überblick über Ihr Projekt und können mehrere Builds problemlos vergleichen. Sie können auf diese Seite zugreifen, indem Sie auf das Element auf der Seite Standardübersicht klicken. Zusätzlich zur Seite der Projektansicht haben wir auch eine Seite für Build -Ansicht. Sie können zu dieser Seite navigieren, indem Sie auf die Build -Nummer in der Seitenleiste klicken. Hier können Sie verschiedene Details zu diesem speziellen Build anzeigen.

In diesem Artikel wird jedes Tool und seinen Bericht Schritt für Schritt eingeführt. Schließlich werden wir uns auch einige der zusätzlichen Details ansehen, die Jenkins für uns gesammelt hat. Da wir das gleiche Projekt mehrmals erstellen, wird in unserem Diagramm eine gerade Linie angezeigt. In den tatsächlichen Projekten schwankt das Diagramm.

PHP codesNiffer

codesNiffer ist ein Tool, um zu überprüfen, ob Ihr Code einen gemeinsamen Regelsatz oder Ihren eigenen benutzerdefinierten Regelsatz entspricht. In diesem Beispiel haben wir das Tool konfiguriert, das wir gegen PSR2 testen möchten. Wir haben dies in der Datei "Build.xml" definiert.

<arg value="--standard=PSR2" />
Nach dem Login kopieren

Auf der Übersichtsseite sehen Sie ein Diagramm namens "CheckStyle Trend". Dieses Diagramm stellt die Anzahl der PSR2 -Probleme in jedem Build dar. In unserem Code sind wir fast vollständig pSR2 -konform, daher zeigt unser Diagramm nur ein Problem.

Analyzing a PHP Project with Jenkins

Es gibt auch ein Diagramm unter der Seite, in dem Daten aus 3 Tools kombiniert werden. CodesNiffer ist einer von ihnen.

Um zu sehen, wo sich das Problem befindet, können Sie im linken Menü des neuesten Builds auf "Checkstyle Warnings" klicken, oder auf einen bestimmten Build klicken und dann auf "CheckStyle Warnings" für diesen bestimmten Build klicken.

Analyzing a PHP Project with Jenkins

Auf dieser Seite können Sie die Beschreibung des Problems deutlich sehen. Beachten Sie, dass Sie mehrere Filter verwenden können. In der oberen Bar können Sie deutlich sehen, wie viele Probleme neu sind und wie viele behoben wurden. Sie können auf die Nummer klicken, um die Änderungen klar anzuzeigen. In der Zusammenfassung können Sie schnell Fragen anzeigen, die durch Priorität eingestuft wurden.

Php MD

MD steht für Messdetektor. Dieses Tool versucht mehrere Probleme im Code anzugeben. Dies kann ein potenzieller Fehler, ein nicht verwendeter Code oder ein komplizierter Ansatz sein. Für eine vollständige Liste der verfügbaren Überprüfungen können Sie diese Seite anzeigen. Bitte beachten Sie, dass wir nicht jede Regel überprüfen. Sie können die Regeln definieren, um die Datei phpmd.xml zu überprüfen.

Wie PHP -CodesNiffere sehen wir ein Diagramm auf der Projektansichtsseite, das angibt, wie unsere Verwirrungserkennung im Laufe der Zeit fortschreitet.

Analyzing a PHP Project with Jenkins

Um herauszufinden, was das Problem ist, können Sie im Menü links auf "PMD -Warnungen" klicken, um zum neuesten Build zu gehen. Wenn Sie einen anderen Build sehen möchten, klicken Sie auf einen Build und wählen Sie PMD -Warnungen. Sie kommen auf einer Seite an, die der Seite PHP -CodesNiffer ähnelt.

Analyzing a PHP Project with Jenkins

An der Spitze können Sie wieder sehen, wie viele Probleme neu sind und wie viele Probleme behoben sind. Abgesehen davon können Sie die Priorität jeder Frage sehen.

Auf der Seite Details finden Sie weitere Informationen darüber, wo Sie das Problem finden können. Es gibt viele Registerkarten, mit denen dieselben Informationen auf unterschiedliche Weise bereitgestellt werden können. Sie können beispielsweise auf "Typen" klicken, um mehr über jeden Typ zu erfahren.

Analyzing a PHP Project with Jenkins

Wie Sie sehen können, ist "nicht verwendetes formalParameter" unser größtes Problem. Wenn Sie darauf klicken, werden wir erneut sehen, welche Dateien nicht verwendete Parameter haben.

php cpd

CPD steht für Kopierpaste -Detektor. Dieses Tool analysiert alle Code und sucht nach mehreren doppelten Zeilen. Wenn Sie viele doppelte Linien haben, kann dies bedeuten, dass Sie bestimmte Teile neu schreiben sollten, damit die Logik zwischen mehreren Klassen geteilt wird. Auf der Projektansichtsseite werden wir den Gesamtfortschritt in allen Builds erneut sehen.

Analyzing a PHP Project with Jenkins

Im Menü links können wir auf "Doppelte Code" klicken, um einen Überblick über die gefundenen Probleme zu erhalten. Klicken Sie nach wie vor auf Build, um weitere Informationen zu diesem Build zu erhalten. Sie werden feststellen, dass die Übersicht ähnlich der vorherigen Seite aussieht. Klicken Sie auf die Registerkarte "Details", um weitere Informationen zu erhalten.

Analyzing a PHP Project with Jenkins

Wie Sie sehen, gibt es 58 Zeilen in der FirmaFilter -Klasse, die sich auch in den Klassen UserFilter und TimEcategoryFilter befinden. Basierend auf diesen Daten können Sie entscheiden, dass Sie eine Art BaseFilter- oder Implementierungsdienst benötigen, der die meisten aller drei Klassen abwickelt. Die Lösung hängt von Ihrer Situation ab. PHP CPD sagt Ihnen nur, wo das Problem gefunden wurde.

php abhängig

PHP Depel ist wahrscheinlich die schwierigste Metrik zu verstehen. PHP Depel führt eine statische Codeanalyse in Ihrer Codebasis durch. Es generiert 2 Bilder und eine Übersichtsseite. Sie können feststellen, dass es oben auf der Seite der Projektansicht einige HTML gibt, die das Bild anzeigen sollten.

Die Tatsache, dass das Bild nicht angezeigt wird, bedeutet, dass Sie den Schalter in der Jenkins -Konfiguration umschalten müssen. Gehen Sie zu "Verwalten von Jenkins" und gehen Sie zu "Konfigurieren von Global Security". Es gibt ein Auswahlfeld, mit dem Sie "Markup -Formatierer" konfigurieren können. Stellen Sie es auf "sichere HTML" ein und speichern Sie Ihre Einstellungen. Wenn Sie jetzt zur Seite zur Projektansicht zurückkehren, werden Sie feststellen, dass die HTML in zwei Bilder konvertiert wurde.

Analyzing a PHP Project with Jenkins

Ich empfehle Ihnen, die offizielle Dokumentation dieses Tools zu lesen, um diese beiden Diagramme vollständig zu verstehen. Weitere Informationen zur Pyramide erhalten Sie von diesem Link. Weitere Informationen zu abstrakten Instabilitätsdiagrammen finden Sie in diesem Link.

Sie können weitere Details erhalten, indem Sie auf einen bestimmten Build klicken und "jdepend" im Menü links auswählen. Sie erhalten den folgenden Überblick.

Analyzing a PHP Project with Jenkins

Die Erklärung dieser Seite ist auch ziemlich groß und komplex, daher habe ich Sie auf die offizielle Dokumentation gerichtet, in der alles erklärt wird.

phploc

PHPLOC ist ein Werkzeug, um die Größe eines Elements schnell zu messen. Es zeigt Ihnen die Gesamtzahl der Zeilen des Codes, die Gesamtzahl der statischen Methoden usw. Im Menü links klicken Sie auf „Diagramme“, um die Ergebnisse für dieses Tool zu erhalten. Sie können 11 Diagramme verwenden, um diese Informationen zu finden. Im Folgenden sehen Sie einen Screenshot eines Diagramms, in dem die Gesamtzahl der Code- und Kommentarezeilen sowie die Gesamtzahl der Methoden, Klassen, Eigenschaften und Funktionen angegeben ist.

Analyzing a PHP Project with Jenkins

Analyzing a PHP Project with Jenkins

phpunit

Die große Menge an Statistiken in Jenkins wird durch Phpunit erzeugt. Nur in der Übersicht sehen Sie 3 Diagramme, die von Phpunit -Daten generiert werden.

Analyzing a PHP Project with Jenkins

Das erste Diagramm gibt an, wie viel Code vom Test abgedeckt wird. In diesem Fall sind es 71,1%. Um diese Berichterstattung zu erzeugen, verwendet der Hintergrund XDEBUG.

Das zweite Diagramm gibt Ihren Mistniveau an. Mist steht für Änderungsrisikoanalyse und -prognose. Mist wird berechnet, indem die Komplexität des Codes und die Menge der auf dem Code durchgeführten Tests geprüft werden. Wenn Sie die PHP -MD -Regeln durchsuchen, haben Sie möglicherweise festgestellt, dass PHP -MD auch die Komplexität des Codes überprüfen kann, aber keine Einheiten -Tests berücksichtigt. Bitte lesen Sie hier, um zu erfahren, wie PHP MD Ihre Komplexität berechnet.

Das endgültige Diagramm zeigt, wie viele Tests erfolgreich waren und wie viele gescheitert sind. In diesem Fall gelang es ihnen allen.

In unserem linken Seitenleistenmenü haben wir zwei Projekte von Phpunit generiert. Der erste ist Mist. Auf dieser Seite sehen Sie einen Überblick über mehrere Diagramme, in denen Sie angeben, wie hoch Ihr aktuelles Mistniveau ist. Unten sehen Sie tatsächlich, welche Methoden als Mist gekennzeichnet sind. Sie werden eine Spalte bemerken, die die Abdeckung und Komplexität anzeigt.

Der zweite Menüelement ist "Clover HTML -Bericht". Auf dieser Seite können Sie das Verzeichnis skizzieren, wie viel Inhalt durch Ihre Unit -Tests überschrieben wird.

Analyzing a PHP Project with Jenkins

Sie können auf das Verzeichnis klicken, um Einblick in Ihren Quellcode zu erhalten. Wenn Sie zu einer Datei ankommen, können Sie sie öffnen und Zeile nach Zeile sehen, wie viel Inhalt überschrieben wird. Verwenden Sie die Farbe, die angibt, welche Teile getestet werden und welche Teile nicht getestet werden. Wenn Sie über eine Linie schweben, wird angeben, wie oft Ihr Unit -Test die Linie bezeichnet hat.

Analyzing a PHP Project with Jenkins

In diesem Beispiel können wir deutlich erkennen, dass der Teil der IF -Anweisung durch den Unit -Test nicht aufgerufen wird. Dies ist in diesem Fall richtig. Diese Methode führt nur GET -Anforderungen aus, nicht nach Anfragen. Wenn wir eine Postanforderung in Unit -Tests implementieren, wird diese Anweisung grün gekennzeichnet. Auf diese Weise können Sie leicht fehlende Teile Ihrer Einheiten -Tests entdecken.

phpdox

Es gibt viele Tools, um Dokumentationen basierend auf Ihrem Code und Kommentaren zu generieren. PHPDOX ist nur ein weiteres Tool, das diese Aufgabe für Sie ausführen kann. Im Menü links können Sie auf "API -Dokumentation" klicken, um zu Ihrem Dokument zu gehen. Der Vorteil von PHPDOX besteht darin, dass es auch die Ergebnisse aller anderen Tools enthält.

Analyzing a PHP Project with Jenkins

Mit der Navigation oben können Sie einen Überblick über alle Klassen erhalten, aber Sie können auch in eine Klasse eintauchen und einen Überblick über alle Methoden und Beschreibungen erhalten. Sie können auch den Dateiverlauf und den Quellcode anzeigen.

Analyzing a PHP Project with Jenkins

Andere Seiten

Zusätzlich zu den Tools, die wir in früheren Artikeln eingerichtet haben, sammelt Jenkins zusätzliche Informationen für Sie. Das von uns installierte Verstoß -Plugin erstellt eine zusätzliche Seite, auf der ein Überblick über PHP -CodesNiffer, PHP MD und PHP CPD angezeigt wird.

Sie können auch auf einen bestimmten Build klicken und im Menü links einen Menüelement mit dem Namen "Änderungen" suchen. Wenn Sie zu dieser Seite gehen, sehen Sie einen Überblick über alle Commits zwischen dem vorherigen Build und diesem Build. Wenn keine Änderungen vorgenommen werden, ist die Seite leer.

Analyzing a PHP Project with Jenkins

Schlussfolgerung

In diesem Artikel untersuchen wir sorgfältig die Arten von Indikatoren, die aus allen Tools erhalten wurden. Alle Informationen, die Sie abrufen, können auch in der Befehlszeile abgerufen werden. Der Vorteil von Jenkins besteht darin, dass Sie Diagramme und Übersichten erstellen können, die bessere Probleme darstellen.

Im letzten Teil werden wir einige Werkzeuge ersetzen und einige zusätzliche Metriken hinzufügen. Wir werden uns auch ansehen, wie Sie unseren CSS-, JavaScript- und HTML -Code analysieren.

(Der FAQ -Teil wird hier weggelassen, da der Inhalt des FAQ -Teils mit dem Hauptinhalt des Artikels sehr wiederholt ist und länger ist, um eine Doppelarbeit zu vermeiden, wird er hier weggelassen.)

Das obige ist der detaillierte Inhalt vonAnalyse eines PHP -Projekts mit Jenkins. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage