Nachdem ich schon CodeSniffer und phploc vorgestellt habe, möchte ich noch weitere Tools aus diesem Bereich vorstellen. Bei diesen Tools handelt es sich um phpdepend, phpmd und phpcpd. Was sich hinter diesen Namen verbirgt, kann man hier nachlesen.
phpdepend
phpdepend ist ein Tool, das auf den Quellcode verschiedene Metriken loslässt und eine Übersicht der so gewonnenen Daten ausgibt. phpdepend zeigt die Tiefe von Vererbungen und natürlich auch Abhängigkeits-Zyklen auf.
phpmd
Der PHP Mess Detector sucht im Quelltext nach verräterischen Mustern. Es gibt gewisse Fehler, die man bei der täglichen Arbeit immer wieder macht und die aber keine Syntaxfehler darstellen. Ein kleines Beispiel ist eine Zuweisung in einem if, da hier das zweite Gleichheitszeichen vergessen wurde. Im Code sieht das etwa so aus:
if ($a = 3)
// was eigentlich heißen sollte
if ($a == 3)
Solche Probleme findet der phpmd und erleichtert die Arbeit. Sehr schön ist auch die entsprechende Ausgabe. Der phpmd wirft eine pmd-xml konforme Datei aus, sodass diese von entsprechenden Tools (bspw CI-Server) weiter verarbeitet werden können.
phpcpd
Der php Copy and Paste Detector ist eine Ergänzung zu phpmd. Er ist auf das Erkennen von Copy and Paste in Quelltexten spezialisiert. Hierzu muss man eigentlich nicht mehr sagen. Das Don’t repeat yourself-Prinzip kann man hiermit überwachen. Eine interessante Anmerkung ist die Tatsache, dass phpcpd seinen output im pmd-cpd-xml Format ausgeben kann und Ebenso wie bei phpmd diese gewonnenen Daten durch weitere Tools verarbeitet werden könnnen.