• Quelltexstanalyse-Tools

    von Nils Langner am 13. Januar 2010
    Dieser Artikel wurde auf Wunsch der phphatesme Leser verfasst und wurde über die Ideenschmiede eingereicht. Falls du auch eine Idee für einen Artikel hast, dann füge sie doch einfach hinzu.

    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.

    Nils Langner Nils Langner

    Auch wenn Ihr es mir nicht glauben werdet, aber ich habe nichts gegen PHP. Ich rege mich einfach nur gerne auf. Ok so schlimm ist es auch nicht. Eigentlich wollte ich schon immer einen Blog haben und da ...

    Zum Profil von Nils Langner

    8 Kommentare »


    • Sascha Tietze
      am 13. Januar 2010 um 08:07 Uhr

      Ich sage nur muchas gracias für diese smarte Übersicht! Auf das CodeSniffer Projekt bin ich wirklich mal gespannt ;)


    • Dennis Becker
      am 13. Januar 2010 um 09:19 Uhr

      Mir fällt noch PHPMD (http://phpmd.org/about.html) von Manuel Pichler ein. Alles in allem eine sehr schöne Liste :)


    • Nils Langner
      am 13. Januar 2010 um 09:57 Uhr

      @Dennis: Stimmt. Danke für den Link. Werde ihn heute Abend noch ergänzen.


    • Mathias Methner
      am 13. Januar 2010 um 10:22 Uhr

      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?


    • Sebastian Bergmann
      am 13. Januar 2010 um 10:22 Uhr

      http://phpqatools.org/ :-)


    • Nils Langner
      am 13. Januar 2010 um 10:30 Uhr

      @Sebastian: Da würde ich mal sagen, dass wir da schon nah dran sind ;) Mit Padawan hast du auch noch keine Erfahrung, oder?


    • pehbehbeh
      am 13. Januar 2010 um 16:22 Uhr

      Sehr schöne Auflistung. Viele kannte ich selber noch nicht.

      Jetzt habe ich was zum testen. :)


    • Linkhub Woche 03-2010 - pehbehbeh
      am 17. Januar 2010 um 10:29 Uhr

      [...] Quelltextanalyse-Tools (PHP) [...]

    RSS-Feed für Kommentare zu diesem Artikel. TrackBack-URL

    Einen Kommentar hinterlassen

    Werbung
    PHP Magazin
    Ausgabe 02/2010

    Dieses Mal mit Artikeln zu den Themen OpenSocial und Apache Shindig, Graphentheorie, Smarty3

    t3n
    Ausgabe 19

    Social Media (R)evolution. Weitere Themen sind noSQL, Crowdsourcing ...

    PHP Journal
    Ausgabe 2/2010

    PHP & Windows optimal nutzen, die besten PHP-CMS im Überblick, Google-API mit Zend Framework nutzen.

    Wir wurden schon öfters gefragt, ob man uns nicht irgendwie unterstützen kann. Die Antwort war immer einfach: Klar! Am einfachsten ist es eure nächsten Einkäufe bei Amazon über unsere Link abzuwickeln. Damit würdet ihr uns schon sehr helfen. Über Co-Autoren freuen wir uns aber noch mehr.