php lint
Heute, da ja schließlich Sonntag ist und ihr eh alle in der Kirche sitzt oder eure Kater auskuriert, will ich nur kurz ein kleines Hilfstool ansprechen. Dabei geht es um php lint. Eigentlich macht es nicht viel mehr, als jede gute IDE auch kann, es verifiziert eine php Datei auf Syntax Fehler. Der Aufruf geschieht einfach durch php und zwar mit dem Parameter -l.
php -l myPhpFile.php
Das ganze funktioniert natürlich unter Windows genau so, wie unter Linux. Aber was habe ich jetzt gewonnen, wenn mir das Tool ein Feature bietet, dass jede IDE auch kann. Naja, erstmal arbeiten wir nicht alle mit einer IDE, was schockierend ist, aber leider wahr. Da wir aber alle mit einer Versionsverwaltung wie SVN arbeiten, bietet sich hier der Aufruf von PHP lint, da er recht rasant geschieht, als prehook an. Dies beideutet, dass die Versionsverwaltung den Commit/Submit gar nicht annimmt, falls Probleme auftreten. Ich möchte nur mal auf den Fall hinweise, dann man S anstatt Strg-S drückt. Schon hat man ein doofes S irgendwo im Source Code. Das dieses ins Repository rein kommt, ist hiermit verhindert. Aber nicht nur die Versionsverwaltung kann hier integriert werden. Wir haben zum Beispiel unser Cruise Control so getrimmt, dass es bei jedem „Bau“ unseren Source Code nach Syntax Fehlern durchsucht.
Vielleicht komme ich ja am Montag dazu den genauen Befehl für unser phpundercontrol Bauskript nachzureichen, damit ihr es auch einbauen könnt.
Nein, es macht nicht das selbe wie jede IDE 😉
PHPs lint check nutzt den parser des entsprechenden binaries und ist somit zu 100% korrekt (wobei parse error eh nur ein kleiner Teil der kritischen Fehler sind…) IDEs beinhalten einen Nachbau des parsers, der nachbau könnte Bugs haben 😉
Ok, ihr habt Johannes gehört. Vielleicht sollte man mal ein Eclipse Plug-in schreiben, das php lint verwendet. Sollte ja nicht so schwer sein.
Auch schön ist ein Pre-Commit-Hook, der prüft, ob die PHP-Files vor oder nach dem „“-Teil aus Versehen Line Breaks haben.
Diese Stellen erkennt nämlich die IDE nicht als Fehler, sie sind jedoch fast genauso schlimm wie Syntaxfehler, weil sie schwer zu finden sind und bspw. bei Output Compression den kompletten Output kaputt machen.
Dazu fällt mir ein kleiner Eintrag aus meiner .bashrc ein 😀
function syntaxy()
{
find ./ -type f -name „*.php“ -exec php -l ‚{}‘ \;
}