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" />
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

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

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen





Um die St?rke des Kennworts zu bestimmen, muss die regelm??ige und logische Verarbeitung kombiniert werden. Die grundlegenden Anforderungen umfassen: 1. Die L?nge betr?gt mindestens 8 Ziffern; 2. Enthaltende Kleinbuchstaben, Gro?buchstaben und Zahlen; 3.. Spezielle Charakterbeschr?nkungen k?nnen hinzugefügt werden; In Bezug auf fortgeschrittene Aspekte müssen eine kontinuierliche Vervielf?ltigung von Zeichen und inkrementelle/abnehmende Sequenzen vermieden werden, was eine PHP -Funktionserkennung erfordert. Gleichzeitig sollten Blacklists vorgestellt werden, um gemeinsame schwache Passw?rter wie Passwort und 123456 zu filtern. Schlie?lich wird empfohlen, die ZXCVBN -Bibliothek zu kombinieren, um die Bewertungsgenauigkeit zu verbessern.

Um zwei PHP -Arrays zusammenzuführen und eindeutige Werte zu behalten, gibt es zwei Hauptmethoden. 1. Verwenden Sie für Index -Arrays oder nur Deduplizierung Array_merge und Array_unique -Kombinationen: Zuerst merge array_merge ($ array1, $ array2) und verwenden Sie dann Array_unique (), um sie endgültig zu erhalten, um ein neues Array zu erhalten, das alle eindeutigen Werte enth?lt. 2. Verwenden Sie für assoziative Arrays und m?chten im ersten Array Schlüsselwertepaare beibehalten: $ result = $ array1 $ array2, was sicherstellt, dass die Schlüssel im ersten Array vom zweiten Array nicht überschrieben werden. Diese beiden Methoden gelten für verschiedene Szenarien, je nachdem, ob der Schlüsselname beibehalten wird oder nur der Fokus liegt

H?ufige Probleme und L?sungen für den variablen PHP -Umfang umfassen: 1. Die globale Variable kann innerhalb der Funktion nicht zugegriffen werden, und sie muss bei der Verwendung des globalen Schlüsselworts oder Parameters übergeben werden. 2. Die statische Variable wird statisch deklariert und nur einmal initialisiert und der Wert wird zwischen mehreren Aufrufen beibehalten. 3.. Hyperglobale Variablen wie $ _get und $ _post k?nnen direkt in jedem Bereich verwendet werden, aber Sie müssen auf eine sichere Filterung achten. 4. Die anonymen Funktionen müssen über das Schlüsselwort verwenden, und wenn Sie externe Variablen ?ndern, müssen Sie eine Referenz übergeben. Das Beherrschen dieser Regeln kann dazu beitragen, Fehler zu vermeiden und die Code -Stabilit?t zu verbessern.

Um PHP -Datei -Uploads sicher zu verarbeiten, müssen Sie die Quelle und die Type und die Eingabe des Dateinamens und des Pfades überprüfen, Serverbeschr?nkungen festlegen und Mediendateien zweimal verarbeiten. 1. überprüfen Sie die Upload -Quelle, um CSRF durch Token zu verhindern, und erkennen Sie den realen MIME -Typ über die Finfo_file mithilfe der Whitelist -Steuerung. 2. Benennen Sie die Datei in eine zuf?llige Zeichenfolge um und bestimmen Sie die Erweiterung, um sie gem?? dem Erkennungstyp in einem Verzeichnis ohne Web zu speichern. 3. Die PHP -Konfiguration begrenzt die Hochladengr??e und das tempor?re Verzeichnis Nginx/Apache verbietet den Zugriff auf das Upload -Verzeichnis. 4. Die GD -Bibliothek stellt die Bilder neu, um potenzielle b?swillige Daten zu l?schen.

Es gibt drei g?ngige Methoden für den PHP -Kommentarcode: 1. Verwenden Sie // oder #, um eine Codezeile zu blockieren, und es wird empfohlen, // zu verwenden. 2. Verwenden Sie /.../, um Codebl?cke mit mehreren Zeilen zu wickeln, die nicht verschachtelt werden k?nnen, aber gekreuzt werden k?nnen. 3.. Kombinationskenntnisse Kommentare wie die Verwendung / if () {} / Um Logikbl?cke zu steuern oder um die Effizienz mit Editor -Verknüpfungsschlüssel zu verbessern, sollten Sie auf die Schlie?ung von Symbolen achten und das Verschachteln bei der Verwendung vermeiden.

AgneeratorinphpiSamemory-effizientes WaytoiterateOverlargedatasetsByyieldingValueatimeinsteadofReturningThemallatonce.1.GeneratorsusetheyieldKeywordtoproduktenvaluesonDemand, ReducingMemoryUsage.2.TheyareusefulforfulforfulfordlingBiglopploups, Lesebiglochen, Leselungen, Lesebigs, Leselung, oder

Der Schlüssel zum Schreiben von PHP -Kommentaren liegt in der Kl?rung des Zwecks und der Spezifikationen. Kommentare sollten "Warum" und nicht "was getan" erkl?ren, um Redundanz oder zu Einfachheit zu vermeiden. 1. Verwenden Sie ein einheitliches Format wie Docblock (/*/) für Klassen- und Methodenbeschreibungen, um die Lesbarkeit und die Kompatibilit?t der Werkzeuge zu verbessern. 2. Betonen Sie die Gründe für die Logik, z. B. warum JS -Sprünge manuell ausgeben müssen. 3. Fügen Sie eine übersichtsbeschreibung vor komplexem Code hinzu, beschreiben Sie den Prozess in Schritten und helfen Sie, die Gesamtidee zu verstehen. V. Gute Anmerkungen k?nnen die Kommunikationskosten senken und die Effizienz der Code -Wartung verbessern.

Es gibt zwei M?glichkeiten, ein Array in PHP zu erstellen: Verwenden Sie die Funktion array () oder verwenden Sie Klammern []. 1. Die Verwendung der Funktion array () ist eine traditionelle Art und Weise mit guter Kompatibilit?t. Definieren Sie Indexarrays wie $ fruits = Array ("Apple", "Banana", "Orange") und assoziative Arrays wie $ user = array ("name" => "John", "Age" => 25); 2. Die Verwendung [] ist eine einfachere M?glichkeit, seit Php5.4 wie $ Color zu unterstützen
