Facebook
0
Twitter
0
Google+
0
Kommentare
11

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.

ArrayNested

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

11 Comments

  1. 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!

    Reply
  2. @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?

    Reply
  3. 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 :)

    Reply
  4. @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.

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen