PHP_Beautifier
Heute geht es mal wieder um nützliche Tools. Nachdem ich mich die letze Zeit ein wenig an Coding Guidelines beschäfftigt habe und auch das ein oder andere mit dem PHP_CodeSniffer verbrochen habe, möchte ich euch ein kleines Helferchen vorstellen, mit dem man seinen Code ein wenig aufräumen kann.
Der Code Beautifier wird dazu genutzt um nach bestimmten Richtlinien Code zu formatieren. Wie so oft ist auch dies ein Paket des PEAR Projektes und kann somit wirklich, wie gewohnt, leicht installiert werden.
pear install PHP_Beautifier-0.1.14
Und schwupps kann ich es nutzen. Habe ich überhaupt erklärt, was genau ich nutzen will? Nein? Dann hole ich das einfach nach. Nehmen wir an, ihr habt in eurer Firma einen Coding Standard, der auch „aufzwingt“ die Spaces statt Tabs zu verwenden. Da ich ein Gewohnheitstier bin mache ich trotzdem Tabs. Ist natürlich blöd, denn ich mache ja was „Verbotenes“. Vielleicht nicht so verboten, wie eine Bank aussrauben, aber schon nicht nett.
Jetzt kann ich natürlich einfach jede Datei öffnen und den Source Code reparieren. Händisch. Aber das ist mir zu doof. Ich nehme den PHP_Beautifier. Einfach auf der Kommandozeile ein wenig zaubern und schon sind alle Sorgen verpufft.
php_beautifier -s2 index.php index_new.php
Fertig. War doch einfach, oder? Der Beautifier kann aber nocht viel mehr. Ich habe zum Beispiel die Möglichkeit neue Zeilen einzufügen, an den Stellen, an denen ich sie brauche. Will ich zum Beispiel vor jedem if
eine neue Zeile haben, so würde mein Aufruf wie folgt aussehen:
php_beautifier --filters "NewLines(before=T_IF)"
Die Syntax finde ich ein wenig gewöhnungsbedürftig. Aber hat man sie einmal verstanden, kann man schon damit leben. Schaut euch einfach die PHP Tokens an, dann wird schon einiges klar werden. Wenn nicht, dann könnt ihr hier auch einfach fragen.
Ansonsten gibt es es noch weitere Filter, wie tum Beispiel das korrekte Einrücken von Arrays (ArrayNested
), Umwandlung aller reservierten Wörter in Kleinschreibweise (Lowercase
) und noch einige anderen. Man kann zwar nicht alles damit lösen, aber vieles und das ist ja schon mal wichtig.
Ich bin übrigens gerade dabei das Ganze so zu konfigurieren, dass man es als externes Tool in Eclipse nutzen kann. Ist nur leider nicht so einfach, da der Code in einer Linux VMWare liegt und ich mit Windows arbeite. Wenn es aber soweit ist, werde ich natürlich darüber berichten.
Ich nutze ganz intensiv den PHP-Formatter von Eclipse. Einmal eingerichtet (Einrückungen, Zeilenumbrüch etc) braucht man nur hin und wieder die Tastenkombi auszuführen und der Code ist im nu formatiert.
Der Formatter ist so umfangreich, dass dort beinahe jeder Codeabschnitt erfasst werden kann. Schön ist auch, dass durch „Quick Diff“ sofort zu sehen ist, welche Zeilen beeinflusst und welche sogar neu hinzugekommen sind.
Kann ich nur empfehlen!
@Alex: Bist du sicher, dass du den Formatter von Eclipse nutzt? Soviel ich weiß, kann der nur zwischen Tabs und Spaces zum Einrücken unterscheiden. Bist du vll. Zend Studio oder PHPEclipse Nutzer?
Kenn ich schon, das Teil ist hervorragend dazu geeignet Code, der durch einen Obfuscator gelaufen ist, für Menschen lesbar zu machen – nicht das jemand so etwas machen würde 🙂
Ich nutze AnyEdit tools plugin for Eclipse (http://andrei.gmxhome.de/anyedit/) mit dem nach jedem Speichern einer Datei die konfigurierten Aktionen automatisch ausgeführt werden. Gute Ergänzung zum Formater.
@Nils: Ich nutze Zend Studio for Eclipse, aber ist es nicht irgendwo das selbe? Außer dass Zend den Debugger und einige Editoren liefert?
Hallo Nils,
Ja, was er ist/was er genau macht und wo/wie man ihn anwendet ;D
PS: Wo ist mein Kommentar geblieben?
Ahhh… sorry, falscher Artikel 😀
Hast dus eigentlich in eclipse rein bekommen?
@Hauke: Ja aber wieder ausgebaut. Bin mittlerweile auf Zend Studio umgestiegen. Aber auf meiner Liste steht immer noch ein Tutorial für External Tools hier im Blog. Ich versuch’s bald zu machen.