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

Analyse eines PHP -Projekts mit Jenkins

Feb 19, 2025 am 11:41 AM

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1663
14
PHP-Tutorial
1264
29
C#-Tutorial
1237
24
Erklären Sie verschiedene Fehlertypen in PHP (Hinweis, Warnung, tödlicher Fehler, analysieren Sie Fehler). Erklären Sie verschiedene Fehlertypen in PHP (Hinweis, Warnung, tödlicher Fehler, analysieren Sie Fehler). Apr 08, 2025 am 12:03 AM

Es gibt vier Hauptfehlertypen in PHP: 1. Nichts: Das geringste unterbrochen das Programm nicht, wie z. B. Zugriff auf undefinierte Variablen; 2. Warnung: Ernst als Bekanntmachung, wird das Programm nicht kündigen, z. B. keine Dateien; 3. FatalError: Das schwerwiegendste wird das Programm beenden, z. 4. Parseerror: Syntaxfehler verhindern, dass das Programm ausgeführt wird, z. B. das Vergessen, das End -Tag hinzuzufügen.

PHP und Python: Vergleich von zwei beliebten Programmiersprachen PHP und Python: Vergleich von zwei beliebten Programmiersprachen Apr 14, 2025 am 12:13 AM

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

Erklären Sie sicheres Kennwort -Hashing in PHP (z. B. password_hash, password_verify). Warum nicht MD5 oder SHA1 verwenden? Erklären Sie sicheres Kennwort -Hashing in PHP (z. B. password_hash, password_verify). Warum nicht MD5 oder SHA1 verwenden? Apr 17, 2025 am 12:06 AM

In PHP sollten die Funktionen für Passwort_Hash und passwart_verify verwendet werden, um sicheres Passwort -Hashing zu implementieren, und MD5 oder SHA1 sollte nicht verwendet werden. 1) Passwort_hash generiert einen Hash, der Salzwerte enthält, um die Sicherheit zu verbessern. 2) Passwort_Verify prüfen Sie das Passwort und sicherstellen Sie die Sicherheit, indem Sie die Hash -Werte vergleichen. 3) MD5 und SHA1 sind anfällig und fehlen Salzwerte und sind nicht für die Sicherheit der modernen Passwort geeignet.

PHP in Aktion: Beispiele und Anwendungen in realer Welt PHP in Aktion: Beispiele und Anwendungen in realer Welt Apr 14, 2025 am 12:19 AM

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.

Was sind HTTP -Anforderungsmethoden (erhalten, posten, setzen, löschen usw.) und wann sollte jeder verwendet werden? Was sind HTTP -Anforderungsmethoden (erhalten, posten, setzen, löschen usw.) und wann sollte jeder verwendet werden? Apr 09, 2025 am 12:09 AM

Zu den HTTP -Anforderungsmethoden gehören GET, Post, Put und Löschen, mit denen Ressourcen erhalten, übermittelt, aktualisiert und gelöscht werden. 1. Die GET -Methode wird verwendet, um Ressourcen zu erhalten, und eignet sich für Lesevorgänge. 2. Die Post -Methode wird verwendet, um Daten zu übermitteln und häufig neue Ressourcen zu erstellen. 3. Die Put -Methode wird zum Aktualisieren von Ressourcen verwendet und eignet sich für vollständige Updates. V.

PHP: Eine Schlüsselsprache für die Webentwicklung PHP: Eine Schlüsselsprache für die Webentwicklung Apr 13, 2025 am 12:08 AM

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

Erklären Sie den Unterschied zwischen Selbst ::, Parent :: und static :: in Php OOP. Erklären Sie den Unterschied zwischen Selbst ::, Parent :: und static :: in Php OOP. Apr 09, 2025 am 12:04 AM

In Phpoop bezieht sich Self :: auf die aktuelle Klasse, Eltern :: Bezieht sich auf die Elternklasse, static :: wird für die späte statische Bindung verwendet. 1.self :: wird für statische Methoden und konstante Aufrufe verwendet, unterstützt jedoch keine späte statische Bindung. 2.PARENT :: wird für Unterklassen verwendet, um übergeordnete Klassenmethoden aufzurufen, und auf private Methoden können nicht zugegriffen werden. 3.Static :: unterstützt die verspätete statische Bindung, geeignet für Vererbung und Polymorphismus, kann jedoch die Lesbarkeit des Codes beeinflussen.

Wie kann PHP -Datei sicher sicher hochladen? Wie kann PHP -Datei sicher sicher hochladen? Apr 10, 2025 am 09:37 AM

PHP überlädt Datei -Hochladen über die Variable $ \ _ Dateien. Zu den Methoden zur Sicherstellung gehören: 1. Upload -Fehler, 2. Dateityp und -größe überprüfen, 3.. Dateiüberschreibung verhindern, 4. Verschieben von Dateien auf einen dauerhaften Speicherort.

See all articles