Facebook
Twitter
Google+
Kommentare
8

Quelltextanalyse-Tools

So heute möchte ich mal wieder der Ideenschmiede widmen. Fast 50 Leute wollten wissen, welche Quelltextanalyse-Tools es für PHP gibt. Da ich in der Richtung schon ein paar Dinge gemacht habe, kann ich ja mal eine Liste zusammenstellen, mit Tools, die mir einfallen. Über die meisten habe ich zwar schon das eine oder andere gesagt, ich denke aber ein Überblick kann auf keinen Fall schaden.

Fangen wir doch einfach mal an. Quellcodeanalyse-Tools gehören zu den Werkzeugen der statischen Code-Analyse. Hierbei betrachten wir wirklich nur den Source-Code (sagt der Name wohl schon). Wie sich das Programm zur Laufzeit verhält, also wie es bei Lasttests abschneiden würde oder ähnliches ist hier außen vor.Aber jetzt wirklich zu den Tools.

  • php lint: Der erste Schritt zu hochwertigem Quellcode ist wohl die syntaktische Korrektheit. Würde PHP meinen Code überhaupt verstehen, wenn ich ihn jetzt so ausführen würde?. Die Frage könnt ihr euch mit php -l selbst beantworten. Sollte übrigens auch als Commit-Hook eingesetzt werden.
  • PHP_CodeSniffer: Der Sniffer ist wohl das meist verwendete Werkzeug, wenn es um das prüfen von Coding Guidelines geht. Theoretisch kann hiermit jede Art der statischen Codeanalyse umgesetzt werden, da ich hier direkt den abstrakten Syntaxbaum untersuchen kann. Meist wird es jedoch nur benutzt um falsche Formatierungen zu erkennen. Schade eigentlich. Sven Kiera (PTI) und ich werden da aber in nächster Zeit noch ein kleines Projekt starten, ihr könnt also gespannt sein.
  • phpcpd: Ein nettes kleines Tool von Sebastian Bergmann, mit dem man doppelte Codefragmente in ganzen Projekten finden kann. Sehr nützlich, da duplizierter Code meistens Probleme bei der Wartung bereitet und deswegen eigentlich nicht vorkommen darf.
  • PHP_Depend: Dieses Analysewerkzeug von Manuel Pichler ist eines meiner Lieblinge. Jede Menge Metriken werden über Klassen, Methoden und/oder Projekten berechnet. Bei der Auswertung der Ergebnisse muss man sich aber ein wenig mit der Thematik auseinander gesetzt haben, da sonst die Interpretation nicht immer der Wahrheit entsprechen muss.
  • Mayflower Padawan: Leider habe ich das Tool noch nicht selber ausprobiert, aber Thorsten Rinne hat mit ein paar Sachen auf der letzen PHP Conference erzählt, so dass ich es wohl mal die nächsten Wochen selbst testen werde. Falls aber jemand schon mit dem Tool gearbeitet hat, kann er mir gerne mal schreiben. Es soll übrigens Anti-Patter im Source-Code finden.
  • phpdcd – Weiteres Tool von Sebastian Bergmann, dem ich mich die nächsten Tage annehmen werde, deswegen kein Link und keine Info. Wollte auch nur sagen, dass ich es nicht vergessen habe.
  • phploc – Und wieder der Bergmann. Mit phploc kann ich die Größe eines Projektes messen. Zusätzlich spuckt er mir auch noch die Anzahl von Klassen, Interfaces und vielem mehr aus.
  • nWire – Mit nWire könnt in in Eclipse euch euren Code grafisch aufzeichnen lassen. Weiß gar nicht ob man auch analysiert, aber sicher ist sicher.

Bestimmt habe ich welche vergessen. Dürft also gerne in den Kommentaren alles vervollständigen, was es so zum vervollständigen gibt. Freue mich nämlich immer neue Tools kennenzulernen.

Ü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

8 Comments

  1. Interessanterweise habe ich gerade gestern einen kleines Know-How Transfer u.A. zu diesem Thema gehalten und musste auch feststellen, dass die statitischen Codeanalysen oftmals nur in Verbindung mit Vergleichs – und Erfahrungswerten eine fundierte Aussage machen.

    Hat Jemand solche Erfahrunsgwerte schonmal zur Tastatur gebracht?

    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