PHP CodeSniffer mit WordPress verwenden PHP CodeSniffer installieren und verwenden

Im ersten Artikel dieser Serie haben wir Code-Gerüche definiert und einige Beispiele dessen, was sie sind und wie wir sie umgestalten können, betrachtet, um die Qualität des Codes zu verbessern. Erinnern:

[Ein] Codegeruch, im Computerprogrammiercode auch als schlechter Geruch bekannt, bezieht sich auf ein Symptom im Quellcode eines Programms, das möglicherweise auf ein tieferes Problem hinweist. 

Letztendlich arbeiten wir an der Implementierung von WordPress-spezifischen Code-Sniffing-Regeln. Bevor Sie dies tun, müssen Sie sich jedoch mit PHP CodeSniffer vertraut machen. 

In diesem Artikel werden wir uns ansehen, was PHP CodeSniffer ist, wie man es installiert, wie man es mit einem Beispielskript ausführt und wie man dieses Skript umgestaltet. Dann schauen wir uns an, wie wir uns mit WordPress-spezifischem Code befassen werden.

Wenn Sie eine lokale Entwicklungsumgebung eingerichtet haben, ist es großartig. wenn nicht, ist das in Ordnung. Ich werde einige Links bereitstellen, die Sie schnell zum Laufen bringen. 

Nachdem dies gesagt ist, lasst uns anfangen.

Voraussetzungen

Bevor Sie beginnen, ist es wichtig, dass Sie über eine lokale Entwicklungsumgebung verfügen, auch wenn diese nur eine Kopie des PHP-Interpreters enthält.

Möglicherweise haben Sie bereits eine Kopie

Wenn Sie eine Variante von Linux oder OS X verwenden, besteht die Möglichkeit, dass Sie bereits PHP installiert haben. Wenn Sie dies tun, brauchen Sie sich in diesem Abschnitt keine Gedanken zu machen. Um festzustellen, ob Sie PHP installiert haben, führen Sie den folgenden Befehl in der Befehlszeile aus:

$ php -v

Sie sollten etwas wie das Folgende sehen (obwohl sich Ihre Ausgabe je nach PHP-Version unterscheiden kann, für die Sie sich entschieden haben):

PHP 5.6.10 (cli) (erstellt am 6. Juli 2015 um 14:28:54 Uhr) Copyright (c) 1997-2015 Die PHP-Gruppe Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

Wenn Sie fortgeschrittener sind und mehrere Kopien des Projekts installiert haben, können Sie Folgendes ausführen:

$ welcher php

Und du solltest so etwas sehen:

/Anwendungen/MAMP/bin/php/php5.6.10/bin/php

Ihre Ausgabe hängt jedoch davon ab, wo Ihre PHP-Version installiert ist.

Aber wenn nicht, ist das okay!

Obwohl diese Serie in erster Linie auf Anfänger ausgerichtet ist, gibt es einige von Ihnen, die mit dem Herunterladen einer PHP-Version und der Installation auf Ihrem System vertraut sind. Wenn Sie dies sind, nehmen Sie eine Kopie von PHP von der Homepage des Projekts, installieren Sie sie und kehren Sie zu diesem Tutorial zurück.

Wenn dies jedoch für Sie neu ist, können Sie auf der oben verlinkten PHP-Startseite eines der Installationsprogramme für Ihr Betriebssystem oder eines der unten angegebenen Dienstprogramme verwenden.

  • WAMP für Windows
  • XAMPP Für Linux, Windows oder OS X
  • MAMP für Windows und OS X

Alle diese Pakete verfügen über eigene Installationsprogramme und werden PHP, MySQL und Apache installieren. Wie bereits erwähnt, geht es uns in erster Linie darum, eine PHP-Version in unserem System zur Verfügung zu haben. 

Wenn diese installiert sind, führen Sie die im ersten Teil dieses Abschnitts genannten Befehle (oder die Entsprechung Ihres Systems) aus. In diesem Fall sollten Sie eine ähnliche Ausgabe sehen. 

Wenn Sie dies nicht tun, müssen Sie wahrscheinlich den Pfad zu den Umgebungsvariablen zu PHP hinzufügen. Dies liegt außerhalb des Anwendungsbereichs dieses Tutorials. Konsultieren Sie daher die Dokumentation der Version des von Ihnen installierten Projekts.

Nachdem PHP jetzt installiert ist, können wir mit dem Einfangen und Bereinigen unserer Codegerüche beginnen.

Was ist PHP CodeSniffer??

Die offizielle PHP CodeSniffer-Software finden Sie auf GitHub.

Aus der Projektdokumentation:

PHP_CodeSniffer besteht aus zwei PHP-Skripten. das haupt phpcs Skript, das PHP-, JavaScript- und CSS-Dateien zum Erkennen von Verstößen gegen einen definierten Codierungsstandard und ein zweites Token verwendet phpcbf Skript zur automatischen Korrektur von Verstößen gegen Codierungsstandards. PHP_CodeSniffer ist ein wichtiges Entwicklungswerkzeug, das dafür sorgt, dass Ihr Code sauber und konsistent bleibt.

Wenn Sie so etwas noch nie gesehen haben, klingt es wirklich ordentlich, nicht wahr? Ich meine, es ist ein Tool, mit dem sichergestellt werden soll, dass in Ihrem Code eine bestimmte Qualität vorhanden ist!

Obwohl im Projekt Sprachen wie CSS und JavaScript erwähnt werden, konzentrieren wir uns in dieser Serie auf PHP. Dies bedeutet jedoch nicht, dass es nicht wichtig ist, die Qualität dieser bestimmten Sprachdateien in Ihren Projekten zu überprüfen.

So toll es auch klingt, wirft immer noch die Frage auf, wie wir die Software installieren und wie wir unseren Code überprüfen?

Beantworten wir beide Fragen jetzt.

1. Installieren der Software

Wenn Sie eine Google-Suche nach der Installation von PHP CodeSniffer durchführen, werden Sie wahrscheinlich eine Vielzahl von Ergebnissen erhalten, von denen viele die Verwendung von Pear beinhalten.

Pear war einst das De-facto-Paketverteilungssystem für PHP-Bibliotheken, und obwohl viele Pakete noch immer über die Software verfügbar sind, wird es auch von anderen gängigen Paketen (wie PHPUnit) abgelöst..

Aus diesem Grund empfehle ich oft, andere Installationsmethoden zu verwenden, wenn diese verfügbar sind. Dazu gehört die Verwendung von Tools wie Composer, die wohl die beliebteste Abhängigkeitsverwaltungssoftware für PHP ist.

Wenn Sie Composer noch nie verwendet haben, machen Sie sich keine Sorgen. Ich gebe Ihnen alle Schritte, die Sie benötigen, um PHP CodeSniffer mit Composer und mit minimalem Aufwand auf Ihrem Computer zu installieren. Wenn Sie mehr darüber erfahren möchten, bieten wir Ihnen einige Anleitungen zur Verwendung von Composer. Schauen Sie sich diese an.

Composer installieren

Bevor wir PHP CodeSniffer installieren, müssen Sie Composer tatsächlich installieren. Glücklicherweise ist dies sehr einfach, sobald Sie PHP auf Ihrem lokalen Rechner installiert haben.

Um Composer zu installieren, können Sie diese Datei herunterladen und dann den folgenden Befehl in der Befehlszeile ausführen, wo auch immer Sie das Composer-Installationsprogramm heruntergeladen haben:

$ php composer-setup.php --install-dir = bin --filename = Komponist

Ein Hinweis aus der Composer-Installationsanleitung:

Sie können Composer in einem bestimmten Verzeichnis mithilfe von installieren --Installationsverzeichnis Option und benennen Sie es zusätzlich mit () --Dateiname Möglichkeit. 

Für weitere Informationen lesen Sie bitte die Download-Anweisungen oder sehen Sie sich das gesamte Projekt auf GitHub an.

Nach der Installation können Sie jetzt Composer verwenden, um Abhängigkeiten von Drittanbietern wie PHP CodeSniffer in Ihren Projekten zu installieren. Notieren Sie sich jedoch, wo Sie Ihre Kopie von Composer installiert haben. Sie müssen beim Ausführen darauf zurückgreifen, da wir es von der Befehlszeile aus ausführen werden.

Wie auch immer, erstellen wir ein Verzeichnis, in dem wir unsere PHP-Skripte ausführen werden. Obwohl wir noch nichts in diesem Verzeichnis haben, müssen wir eine Datei mit dem Namen erstellen composer.json.

Ich werde mein Verzeichnis anrufen Tutsplus-Demo, und ich füge meine Composer-Datei in dieses Verzeichnis ein, um zu beginnen.

Wenn Sie die Datei erstellt haben, fügen Sie den folgenden Code in die JSON-Datei ein:

"required": "squizlabs / php_codesniffer": "2. *"

Kurz gesagt, dies weist Composer an, PHP CodeSniffer zu installieren, wenn Sie den richtigen Befehl ausführen. Notiere dass der benötigen Direktive macht Folgendes:

Listet die für dieses Paket erforderlichen Pakete auf. Das Paket wird nur installiert, wenn diese Voraussetzungen erfüllt sind.

Weitere Informationen zum Composer-Schema finden Sie in der Dokumentation.

Sobald der Composer installiert ist und Sie Ihre composer.json Die Datei sieht aus wie der obige Code. Es ist an der Zeit, PHP CodeSniffer zu installieren. Geben Sie in der Befehlszeile den folgenden Befehl ein:

$ composer-Update

Beachten Sie, dass dies auf der Idee basiert, dass Composer auf Ihrem System öffentlich verfügbar ist. Wenn dies nicht der Fall ist, können Sie es ausführen, indem Sie den vollständigen Pfad zur installierten Datei eingeben, oder Sie können es den Umgebungsvariablen hinzufügen und anschließend die Terminalsitzung erneut starten, um die Variablen erneut zu laden.

Sobald Composer fertig ist, sollten Sie Folgendes sehen:

Und dein tutsplus-code Das Verzeichnis sollte jetzt so aussehen:

Beachten Sie insbesondere, dass Sie ein Herstellerverzeichnis haben. Dies bedeutet, dass Composer PHP CodeSniffer ordnungsgemäß installiert hat. An dieser Stelle können wir unseren PHP-Code auswerten.

2. Skripte auswerten

Nehmen wir zunächst ein Beispielskript. Die Frage, die wir uns ansehen werden, finden Sie in dieser Antwort zum Stack Overflow.

Erstellen Sie eine Datei in Ihrem Tutsplus-Demo Verzeichnis und benennen Sie es sample.php. Stellen Sie dann sicher, dass die Datei den folgenden Inhalt enthält:

 

Sichere deine Arbeit. Als Nächstes können Sie PHP CodeSniffer von der Befehlszeile aus ausführen und den Code im obigen Skript anhand des Standardregelsatzes auswerten lassen.

Geben Sie an Ihrem Terminal den folgenden Befehl ein:

$ vendor / bin / phpcs sample.php

Dies sollte eine Ausgabe generieren, die Folgendes enthält:

Skyhopper5: tutsplus-demo tommcfarlin $ vendor / bin / phpcs sample.php DATEI: /Users/tommcfarlin/Desktop/tutsplus-demo/sample.php ------------------- -------------------------------------------------- - 4 FEHLER, DIE 4 LINIEN BETREFFEN, GEFUNDEN --------------------------------------- --------------------------- 2 | ERROR | [] Fehlender Kommentar zum Dokument 5 | ERROR | [x] Nach Komma im Funktionsaufruf 7 | kein Leerzeichen gefunden ERROR | [] Erwartet "if (…) \ n"; gefunden "if (…) \ n" 9 | ERROR | [] Erwartet "if (…) \ n"; gefunden "if (…) \ n" ---------------------------------------- ------------------------------ PHPCBF kann die 1 markierten SNIFF-VERLETZUNGEN AUTOMATISCH BEFESTIGEN ----------- -------------------------------------------------- --------- Zeit: 46 ms; Speicher: 3,5 MB Skyhopper5: tutsplus-demo tommcfarlin $ 

Beachten Sie, dass vier Fehler gefunden wurden. In der ersten Spalte wird angegeben, in welcher Zeile der Fehler aktiv ist, in der zweiten Spalte wird ein Fehler (im Gegensatz zu einer Warnung) angegeben, und der Rest informiert Sie darüber, was er erwartet hat, im Vergleich zu dem, was er tatsächlich gesehen hat.

Bereinigen Sie also die Datei anhand dieser Fehler. Im Allgemeinen müssen wir Folgendes tun:

  1. Fügen Sie einen Dokumentationskommentar auf Dateiebene hinzu.
  2. Fügen Sie ein Leerzeichen nach einem Komma in einem Aufruf einer Online-Funktionsdatei ein.
  3. Fügen Sie Leerzeichen nach hinzu ob Anweisungen im Skript.

Das Endergebnis würde ungefähr so ​​aussehen:

 * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @link http://is.gd/dq0DhO * @since 1.0.0 * / $ target_dir = "uploads /"; $ target_file = $ target_dir. Basisname ($ _ FILES ["fileToUpload"] ["Name"]); $ uploadOk = 1; $ imageFileType = pathinfo ($ target_file, PATHINFO_EXTENSION); // Prüfen Sie, ob die Bilddatei ein tatsächliches Bild oder ein falsches Bild ist, wenn (isset ($ _ POST ["submit"])) $ check = getimagesize ($ _ FILES ["fileToUpload"] ["tmp_name"]); if ($ check! == false) echo "Datei ist ein Bild -". $ check ["mime"]. "."; $ uploadOk = 1;  else echo "Datei ist kein Bild."; $ uploadOk = 0; ?> 

Führen Sie als Nächstes das Skript erneut aus und Sie sollten keine Ausgabe erhalten. Das heißt, Sie sollten die Standard-Eingabeaufforderung erhalten. Manchmal bedeutet dies, dass etwas kaputt ist, aber in diesem Fall läuft alles wie erwartet

Nicht schlecht, richtig? 

Stellen Sie sich jetzt vor, was dies für größere Codebases und Skripts tun könnte, mit denen Sie täglich arbeiten.

Es ist keine Krücke

So wichtig es auch ist, unseren Code auszuwerten, um Codegerüche zu vermeiden und eine möglichst hohe Qualität anzustreben, sollten Tools wie PHP CodeSniffer nicht als Krücken eingesetzt werden. Das bedeutet, dass wir keine Entschuldigung haben, schlechten Code zu schreiben, weil ein anderes Tool es fangen kann.

Weil es nicht immer so ist.

Stattdessen ist dies als eine Art zweiter Durchlauf gedacht. Das heißt, es soll Dinge auffangen, die wir vermissen könnten, wenn Code zum ersten, zweiten oder neunten Mal geschrieben wird. Das Schöne an diesem Programm ist, dass Sie unterschiedliche Regeln in PHP CodeSniffer laden können, abhängig von der Umgebung, dem Framework oder der Bibliothek, mit der Sie arbeiten.

Und genau das machen wir im nächsten Artikel mit WordPress.

Fazit

Was das Einführungsmaterial angeht, haben wir in diesem Tutorial eine ganze Reihe von Themen behandelt. Das heißt, wir haben uns die Einrichtung einer grundlegenden Entwicklungsumgebung auf unserem lokalen Rechner mit PHP angeschaut.

Als Nächstes haben wir uns Composer angesehen und wie er auf unserem System installiert werden kann. Wir haben unsere erste Composer-Datei zum Abrufen von Abhängigkeiten geschrieben, nämlich PHP CodeSniffer, und wir haben sogar die von der Software bereitgestellten Ergebnisse ausgewertet und korrigiert.

Wenn Sie in erster Linie ein PHP-Entwickler sind, hoffe ich, dass die ersten beiden Artikel der Serie hilfreich waren. Wenn Sie jedoch WordPress-Entwickler sind, haben wir noch ein bisschen mehr zu berichten.

Im letzten Artikel der Serie richten wir unsere Aufmerksamkeit auf WordPress. Da es über eigene Codierungsstandards verfügt, werden wir uns ansehen, wie man diese Regeln in PHP CodeSniffer lädt und dann Plugins, Theme-Code usw. bewertet, um eine Vorstellung davon zu bekommen, wie man dies in unserer heutigen Zeit anwenden kann. tägliche Arbeit in unseren WordPress-Projekten.

Bevor wir mit dem nächsten Artikel fortfahren, lesen Sie den obigen Code und stellen Sie sicher, dass Sie PHP und PHP CodeSniffer installiert haben und mit dessen Funktionsweise vertraut sind, da wir dies alles zusammenführen.

Schließlich können Sie alle meine Kurse und Tutorials auf meiner Profilseite überprüfen und Sie können mir auf meinem Blog und / oder Twitter unter @tommcfarlin folgen, wo ich über verschiedene Softwareentwicklungspraktiken spreche, insbesondere im Zusammenhang mit WordPress.

Bitte zögern Sie nicht, Fragen oder Kommentare in den untenstehenden Feed zu schreiben, und ich werde versuchen, auf jeden von ihnen zu antworten.

Verweise

  • PHP
  • PHP CodeSniffer auf GitHub
  • Komponist auf GitHub
  • Composer installieren
  • Das Komponistenschema
  • Tuts + Composer-Tutorials
  • Beispiel eines PHP-Skripts aus Stack Overflow