WordPress Coding Standards: Manuelle Tests per Konsole

Nachdem ich euch letzte Woche erklärt habe, was Coding Standards sind und weshalb man sie einsetzen sollte, soll es heute um das manuelle Testen des eigenen Quellcodes auf die Einhaltung dieser Standards gehen. Denn es will ja wohl niemand den Code Zeilenweise selbst auf Fehler untersuchen 🙂

Der PHP_CodeSniffer

Glücklicherweise gibt es ein Tool, das genau diese Aufgabe zuverlässig und schnell erledigt. Dieses Tool ist der sogenannte PHP_CodeSniffer (PHPCS). Der CodeSniffer ist selbst in PHP geschrieben und kann entweder per PEAR oder per Composer installiert werden.

Installation per PEAR

Sollte der PHP_CodeSniffer bei euch noch nicht installiert sein, dann könnt ihr diesen über mehrere Wege installieren. Global geht das einfach über PEAR:

pear install PHP_CodeSniffer

Installation per Composer

Alternativ könnt ihr den CodeSniffer auch per Comppser installieren. Entweder global in einem beliebigen Ordner auf euren Rechner oder lokal direkt in ein Projekt:

composer global require "squizlabs/php_codesniffer=*"

Solltet ihr den CodeSniffer über eine der beiden Methoden global installieren wollen, dann müsst ihr sicherstellen, dass der Pfad in der PATH Umgebungsvariablen eingetragen ist.

Erste manuelle Tests

Nachdem ihr den CodeSniffer installiert habt, könnt ihr den Code in einem beliebigen Ordner testen. Hierzu öffnet ihr eine Kommandozeile wie CMD oder die Git Bash. Dort startet ihr den CodeSniffer mit folgendem Befehl:

phpcs index.php

Hierbei wird der Code in den angegebenen Dateien oder Ordnern geprüft, alle gefundenen Fehler gesammelt und am Ende in einer Zusammenfassung auf der Konsole ausgegeben:

phpcs-index-php

WordPress Coding Standards in PHPCS installieren

Der CodeSniffer liefert eine Reihe an vorinstallieren Standards mit. Eine Liste hiervon können wir uns mit dem Befehl phpcs -i ausgeben lassen:

$ phpcs -i
The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend

Gibt man keinen Coding-Standard an, dann prüft der CodeSniffer den PHP-Quellcode mit dem eigenen Standard “PHPCS”. Wir möchten aber natürlich den WordPress Coding Standard verwenden, den wir hierzu dem CodeSniffer hinzufügen müssen.

Am einfachsten verwendet man hierzu den Code direkt von Github, den man entweder als ZIP-Datei runterlädt, per Composer installiert oder natürlich noch besser, per Git auscheckt, damit man ihn immer auf dem aktuellen Stand halten kann:

git clone -b master https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git wpcs

Nachdem ihr den Code auf eurem Rechner habt, müsst ihr dem CodeSniffer noch mitteilen, wo dieser liegt. Hierzu verwendet ihr folgenden Befehl:

phpcs --config-set installed_paths /pfad/zu/wpcs

Jetzt könnt ihr den Code eures Plugins oder Themes mit dem CodeSniffer auf die Einhaltung der WordPress Coding Standards testen:

phpcs --standard=WordPress /pfad/zum/code

Die Wahl der richtigen Variante

Die WordPress Coding Standards liegen in mehreren Abstufungen vor. Die am wenigsten strikte Variante ist “WordPress-Core”. Hier wird vor Allem auf die Einhaltung der korrekten Formatierung des Quellcodes geprüft. Etwas mehr prüft die Variante “WordPress-Extra” Die Variante “WordPress-VIP” setzt die hohen Qualitätsmaßstäbe an, die ein Plugin erfüllen muss, dass von WordPress VIP in Kundenprojekten verwendet wird.  Und schließlich gibt es noch “WordPress-Docs”, die sich um die korrekte Verwendung von PHPDoc Kommentaren kümmert. Die Variante “WordPress” kombiniert alle vier Einzelvarianten.

Welche Variante ihr verwenden solltet, hängt auch ein wenig vom Projekt ab. Habt ihr eine große Codebasis, die noch nicht den Standards entsprechen und wollt ihr dennoch nach und nach die WordPress Coding Standards einsetzen? Dann macht am Anfang vermutlich “WordPress-Core” am meisten Sinn, denn sonst würdet ihr hunderte, wenn nicht gar tausende, von Fehlern erhalten. Ich verwende für alle neuen Projekte eigentlich immer die strikteste Variante “WordPress”. Damit habe ich gelernt, von Anfang an noch sehr viel saubereren Code zu schreiben.

Fazit

Ich hoffe, ich konnte euch im heutigen Teil der Serie zeigen, wie ihr mit den WordPress Coding Standards arbeiten könnt. Im nächsten Teil soll es dann darum gehen, wie ihr den manuellen Test automatisieren und die Ergebnisse in eurer IDE schon beim Schreiben des Codes sehen könnt. Solltest ihr bis hierhin Fragen haben, könnt ihr natürlich gerne wieder einen Kommentar hinterlassen.

Veröffentlicht von

Bernhard ist fest angestellter Webentwickler, entwickelt in seiner Freizeit Plugin, schreibt in seinem Blog über WordPress und andere Themen, treibt sich gerne bei den WP Meetups in Berlin und Potsdam herum und läuft nach Feierabend den ein oder anderen Halbmarathon.

1 Kommentar » Schreibe einen Kommentar

  1. Hallo Bernhard,

    ein sehr toller Arrikel, der den von letzter Woche auch gut aufgreift. Ich habe den CodeSniffer mal installiert und geteset. Es ist ein grossartiges Tool, vielen Dank für diesen Tipp! Ich bin schon auf den nächsten Artikel gespannt!

    LG
    Daniel

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.