Heute gibt es wieder einmal leichte Kost. Ihr dürft euch dafür bei PECL bedanken. Mir war es bisher unmöglich SPL_Types zu installieren, ich habe aber noch nicht aufgegeben, denn ich denke, das ist ein spannendes Thema. Aber zurück zum eigentlichen Thema. PHPlint im Hudson. Wir haben ja bereits gesehen wie man PHP mit dem Hudson verheiratet und sloccount kann man auch damit verbinden und nun kommt ein relativ nahe liegender Gedanke: Warum prüft man den PHP Code nicht auf korrekte Syntax, wenn man den Quelltext schon nicht kompilieren kann?
Und genau das machen wir nun. Dazu kann man sich den PHP-Interpreter schnappen und die Syntaxcheck-Möglichkeit benutzen. Dazu ruft man einfach folgenden Code in einer Kommandozeile auf. Dieses Beispiel ist mal wieder Unix/Linux spezifisch, die Windows User werden es aber mit Sicherheit anpassen können:
php -l file.php
Als Ausgabe erhält man entweder No syntax errors detected in file.php
oder eine Ausgabe die den Fehler beschreibt. Diese Funktion nutzen wir nun im Hudson und bauen uns dafür ein neues Target das treffenderweise phplint
heißt.
Dieses Fragment baut man in die build-Datei ein und ergänzt die Targets im Hudson um das phplint
-Target. Sinnvollerweise direkt nach dem prepare, denn wenn der Code schon nicht syntaktisch korrekt ist, bricht der Build an dieser Stelle ab.
Der Check ist relativ schnell umgesetzt und bringt sicher einen weitaus höheren Mehrwert. Als Alternative sei erwähnt, dass man einen solchen Check auch im SVN als pre-commit Hook hinterlegen könnte. Dann könnte man syntaktisch inkorrekten Code nicht einmal im SVN unterbringen. Diese Information nur am Rande.