2008-12-15 2 views
9

Ich habe ein gemischtes PHP4/PHP5-Projekt übernommen, das von Entwickler zu Entwickler weitergegeben wurde, wobei jeder die Dinge schlechter macht. Bevor ich zu viel Zeit damit verbringe, möchte ich einen Basis-Standard entwickeln, der mindestens eine konsistente Formatierung aufweist.Automatisch ererbten PHP-Spaghetti-Code reformatieren

Kann jemand ein Dienstprogramm (Linux oder Mac OS X vorzugsweise) empfehlen, das den Code neu formatiert?

Wenn ich Parameter festlegen kann, die die Ausgabe beeinflussen (wie Tab-Indentation, Klammer/Klammer-Platzierung, wann Array-Werte auf neue Linien usw. aufgeteilt werden sollen), ist das ein Vorteil, aber nicht entscheidend.

Wir bevorzugen Open Source-Tools, obwohl ich auch Ihre Erfahrungen mit gekaufter Software wissen möchte.

Antwort

11

Das können Sie mit Netbeans oder mit Eclipse PDT, beide ausgezeichnete PHP-Editoren. Es gibt jeweils eine Format-Code-Option, die eine ausgewählte Datei entsprechend Ihren Vorgaben für den Code-Stil neu formatiert. Möglicherweise gibt es auch eine Möglichkeit, Code in großen Mengen zu formatieren.

Ich empfehle, wenn Sie dies tun, tun Sie das Format und sofort überprüfen Sie den Code wieder mit einem großen Fett "REFORMATING!" Kommentar. Der Versuch, andere Fehlerkorrekturen mit dem Neuformatieren zu mischen, sorgt für widerlich aussehende Diff-Dateien, um zu versuchen, die Straße zu entschlüsseln.

+0

Sie können Bulk-Format mit Netbeans. Markieren Sie einfach die Dateien im Seitenbereich und klicken Sie auf Quelle> Formatieren. – Henry

5

Ich benutze phptidy: http://cmr.cx/phptidy/https://github.com/cmrcx/phptidy

von Entwurf, es ist nicht so aggressiv wie perltidy, aber es ist immer noch sehr nützlich. Es kann konfiguriert werden und führt alle php-Dateien in Ihrem Projekt als Batch aus.

Update: für ein aggressiveres, auf Standards basierendes Werkzeug betrachtet PHP CS Fixierer: https://github.com/FriendsOfPhp/PHP-CS-Fixer

+0

Das Projekt wurde nach https://github.com/cmrcx/phptidy verschoben – user151841

1

Etwas, das ich vor kurzem gefunden, die ich jetzt lieben und die ganze Zeit. In vim:

gg=G 

Dies erfordert die folgende Konfigurationsoption, die Sie in Ihrem ~/.vimrc einstellen:

filetype plugin indent on