
Verbesserung der Codequalität mit dem PHP_CodeSniffer-Tool
Das Schreiben von Code gemäß den Standards ermöglicht es Ihnen, die Projekterstellung zu beschleunigen. Es ist leichter erweiterbar und besser lesbar – dank dessen können neue Teammitglieder im Projekt schneller bereitstellen und optimale Lösungen liefern. Die PHP-Community bemüht sich ständig, die Codequalität zu verbessern. Im Laufe der Jahre wurden Tools entwickelt, die helfen, Code zu schreiben, der den Standards entspricht. In diesem Text werde ich eines davon vorstellen: PHP_CodeSniffer.
Ich werde Ihnen auch das Drupal Coder-Modul vorstellen, das Standards für das Schreiben von Code für Drupal enthält. Es kann auch verwendet werden, um den Code automatisch mit phpcbf zu korrigieren.
Was ist PHP CodeSniffer?
PHP_CodeSniffer hilft dabei, Ihren Code sauber und den Standards entsprechend zu halten. Das Tool besteht aus zwei Skripten.
- phpcs - tokenisiert den PHP-, JS- und CSS-Code und erkennt Abweichungen vom definierten Code-Schreibstandard,
- phpcbf - korrigiert den Code automatisch gemäß den definierten Regeln.
PHP-Version 5.4.0 oder höher ist für den korrekten Betrieb des Tools erforderlich.
Installation
PHP_CodeSniffer kann mit Composer, cURL oder Wget installiert werden. Ich empfehle die Installation über Composer, aber es sei darauf hingewiesen, dass es auch möglich ist, es innerhalb eines Docker-Containers via Composer zu installieren – wenn Sie Docker verwenden, nutzen Sie diese Installationsmethode.
Composer
composer global require "squizlabs/php_codesniffer=*"
cURL
curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar
Wget
wget https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
wget https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar
Nach dem Herunterladen der Pakete können Sie diese testen.
Composer
cURL, Wget
php phpcs.phar -h
php phpcbf.phar -h
Verwendung
Sowohl die phpcs- als auch die phpcbf-Skripte verwenden den PEAR-Codierstandard. Der Codierstandard kann mit dem Parameter --standard angegeben werden.
Um eine einzelne Datei zu testen, verwenden Sie den Befehl:
$ phpcs dateiname.php
$ phpcbf dateiname.php
Sie können auch ein ganzes Verzeichnis testen:
$ phpcs /pfad/zum/verzeichnis
$ phpcbf /pfad/zum/verzeichnis
Das phpcs-Skript informiert Sie über gefundene Fehler im Codierstandard. Beispiel für Testergebnisse:
Jeder Fehler, der mit einem „x“ markiert ist, kann automatisch mit dem phpcbf-Skript behoben werden.
Das Beheben der verbleibenden Fehler erfordert die Intervention des Programmierers. In der Regel handelt es sich um Fehler wie fehlende korrekte Tags im Klassenkommentar.
Coder - Drupal-Modul
Das Coder-Modul bietet eine Reihe von Programmierprinzipien, die in Drupal verwendet werden. In Kombination mit PHP_CodeSniffer hilft es, Fehler im Codierstandard zu korrigieren.
Installation
Wir installieren das Modul über Composer: composer require drupal/coder
Verwendung
Das Überprüfen des Codierstandards ist ähnlich wie zuvor gezeigt; verwenden Sie lediglich den Parameter --standard, dem Sie den Wert „Drupal“ geben.
Integration mit PHPStorm
Sowohl das PHP_CodeSniffer-Skript als auch das Regelwerk aus dem Coder-Modul können mit den beliebtesten IDEs integriert werden. Lassen Sie uns als Beispiel PHPStorm verwenden.
phpcs
Zuerst müssen Sie den Pfad zum phpcs-Skript in PHPStorm angeben. Gehen Sie dazu zu Einstellungen -> Sprachen und Frameworks -> PHP -> Qualitätstools -> PHP_CodeSniffer

Dann fügen Sie eine neue Konfiguration hinzu und geben im PHP_CodeSniffer-Pfad den Pfad zum Skript an. Sie können die Richtigkeit des Pfades überprüfen, indem Sie auf die validieren-Schaltfläche klicken.

Um die Codevalidierung zu aktivieren und den gegebenen Standard zu wählen, gehen Sie zu Einstellungen -> Editor -> Inspektionen -> Qualitätstools und wählen Sie die Option PHP_CodeSniffer-Validierung aus.

Coder
Um das Regelwerk aus dem Coder-Modul hinzuzufügen, wählen Sie Benutzerdefiniert in der Codierstandard-Auswahlliste. Fügen Sie im Popup den Pfad zur ruleset.xml-Datei hinzu, die mit dem Modul bereitgestellt wird.
Damit das Skript die .module, .install, .theme-Dateien überprüft, fügen Sie diese Erweiterungen zur Liste „Dateien mit Erweiterungen überprüfen“ hinzu.
Zu diesem Zeitpunkt ist phpcs bereits korrekt in PHPStorm integriert.
Falls eine Regel gebrochen wird, wird PHPStorm die nicht den Standards entsprechende Zeile hervorheben, sowie präzise Informationen über die gebrochene Regel liefern.
PHPStorm kann mit PHP Code Beautifier and Fixer integriert werden und erfordert keine zusätzliche Konfiguration. Auf IDE-Ebene können Sie alle Fehler in der Datei, die Sie zuvor mit diesem Skript im Terminal behoben haben, automatisch korrigieren. Um dies zu tun, finden Sie einen Fehler in der Datei und klicken Sie auf oder drücken Sie Alt+Enter.
PHP CodeSniffer - Fazit
Sowohl PHP_CodeSniffer als auch das Coder-Modul verbessern die Arbeit der Programmierer in PHP-Entwicklungsdiensten in unserer Agentur. Der gemäß den Standards geschriebene Code ist leichter zu warten und zu entwickeln. Neue Mitarbeiter im Projekt können schneller bereitstellen. Und wenn das Projekt an ein neues Team übergeben wird, dauert der Implementierungsprozess ebenfalls weniger Zeit. Bei Droptica sind PHP_CodeSniffer und das Coder-Modul der Standard, den jeder Programmierer verwendet.