Code Analyse mit PHP_Depend
05. November 2009
Das PHP Pear Packet “PHP_Depend” eignet sich hervoragent zur Analyse der Code Qualität des eigenen PHP Projekts. Es lässt sich einfach über den Pear Installer installieren und kann dann auf der Comando Zeile über den Befehl “pdepend” aufrufen. Es wird nur PHP benötigt und kein Webserver oder Datenbank. Eine Installation unter Windows war ohne Probleme möglich.
Man kann PHP_Depend über einen beliebigen Code Ordner laufen lassen und sich dabei verschiedenen Formate ausgeben lassen.
JDepend ist ein Format aus der JavaWelt und wohl auch für den Namen des Projektes verantwortlich
JDepend traverses Java class file directories and generates design quality metrics for each Java package. JDepend allows you to automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to manage package dependencies effectively.
- –jdepend-chart=….svg Erzeugt eine SVG Grafik die die Instabilität in Abhängigkeit zur Abstraktion anzeigt
- – jdepend-xml=…xml Gibt diese Informationen als XML Datei aus
Es gibt auch eine reine XML Ausgabe, in der die Ergebnisse für jede einzelne Datei steht
- –summary-xml=….xml
Spannend ist auch die Pyramiden Darstellung
- –overview-pyramid=….xml

@package
Wenn man in seinen PHPDoc Kommentaren nicht mit dem @package Element gearbeitet hat muss man den Parameter –bad-documentation angeben. Lässt man den weg wird entweder gar nichts erzeugt oder nur für die Dateien die diesen Element besitzen. Um ordentlich mit dem Tool arbeiten zu können, sollte man @package ergänzen.
Typo3 Vergleich
Ich habe man den Kern von Typo3 Version 4 und 5 mit dem Tool analysiert:
JDepend Chart:
Typo3 4

Typo3 5

Überblick:
Typo3 4

Typo3 5

Aussagekräftig ist dieser Vergleich natürlich noch nicht, da Version 5 noch kaum Code enthält, aber man kann einen deutliche besseren Code erkennen.
Der Beitrag wurde am Donnerstag, den 05. November 2009 um 20:49 Uhr veröffentlicht und wurde unter PHP, Typo3 abgelegt. du kannst die Kommentare zu diesen Eintrag durch den RSS 2.0 Feed verfolgen. Kommentare und Pings sind derzeit nicht erlaubt.