PHP Codesniffer – Regeln definieren mit ruleset.xml
Aktuell beschäftige ich mich intensiv mit Softwarequalität und darum möchte ich einen Bericht über den aktuellsten PHP_CodeSniffer schreiben.
Regelsets definieren – der alte Weg
Vor einigen Monaten habe ich den CodeSniffer durch die Artikelserie von Nils auf phphatesme entdeckt. Der CodeSniffer wurde von mir direkt ausprobiert. Kurze Zeit später habe ich eigene Regeln erstellt (Regelset Ordner mit PHP kopieren und anpassen…), was aber eine recht mühsame Angelegenheit ist. Zum Glück gibt es jetzt eine neue Möglichkeit…
Regelsets definieren – neu mit XML
Ab der Version 1.3.0 kann man die Regeln sehr einfach mit einem XML File konfigurieren. Hier ein Beispiel:
Das XML sagt folgendes:
- Nimm alle PEAR Sniff Regeln
- Schliesse von PEAR die Regeln LineLength und ScopeIndent aus
- Ergänze eine einzelne Regel OpeningFunctionBraceKernighanRitchie
Somit hat man (wenn man die Regeln mit Namen kennt) innerhalb von wenigen Minuten seine eigenes Ruleset zusammengestellt. Weitere Tips gibts bei Squizlabs nachzulesen.
Anwendung Regelset
Möglichkeit 1
Das Regelset kann ich nun im Standards Ordner von Codesniffer ablegen (unter Ubuntu /usr/share/php/PHP/CodeSniffer/Standards/<RegelsetName>/ruleset.xml).
Danach einfach folgenden Aufruf machen:
phpcs –standard=<RegelsetName> /path/to/code
Möglichkeit 2
Das XML kann irgendwo abgelegt werden und muss dann so aufgerufen werden:
phpcs –standard=/path/to/ruleset.xml /path/to/code