Gleichartiger Code ist gerade in größeren Projekten wichtig um den Überblick nicht zu verlieren. Man findet schneller Fehler und vermeidet anderen Programmieren seinen eigenen Stil aufzudrücken. Anstatt riesige Bücher mit Code Conventions zu verfassen lässt sich PHP, JS oder CSS Code einfach mit dem Paket PHP_CodeSniffer überprüfen.
Out of the box kommt das Programm mit Code Conventions einiger namhafter Hackergilden daher z. B. PEAR, Zend oder Squiz.
Mit dem PHP Repository PEAR ist der CodeSniffer schnell installiert:
pear install PHP_CodeSniffer
Danach kann man sofort seine Dateien überprüfen:
$ phpcs --standard=zend testCLass.class.php
FILE: /tmp/testClass.class.php
--------------------------------------------------------------------------------
FOUND 4 ERROR(S) AFFECTING 2 LINE(S)
--------------------------------------------------------------------------------
6 | ERROR | Spaces must be used to indent lines; tabs are not allowed
6 | ERROR | Opening brace indented incorrectly; expected 8 spaces, found 1
11 | ERROR | Spaces must be used to indent lines; tabs are not allowed
11 | ERROR | Opening brace indented incorrectly; expected 8 spaces, found 1
--------------------------------------------------------------------------------
Time: 0 seconds, Memory: 3.25Mb
Interessant ist vor allem das Erstellen von eigenen Standards welches durch ein „preset“ an Regeln schnell von der Hand geht. Fehlt einem einige wichtige Funktion kann man sie als PHP Klasse nachimplementieren.
Man sollte den Aufwand nicht scheuen den Code Quality Test zu automatisieren und ihn entweder in seine Unit Tests oder in einen Build Server verbauen. Denkbar wäre z.B. auch ein Hook in der Versionsverwaltung. Nur so erhält der Programmierer zeitnah Rückmeldung über Mängel. So bleibt ein Projekt von Beginn an sauber.
Fein sind da die PHP Templates für Jenkins (Hudson) von http://jenkins-php.org/