• PHP mit nWire entwirren

    von Bastian Gorke am 7. Dezember 2009

    Wo ist bloß diese Funktion definiert? Und wo wird die Funktion überall aufgerufen? Warum kommt ständig ein “cannot redeclare”-Fehler? Brauche ich diese Variable überhaupt? Wenn ja, wofür?

    Wer sich schon einmal mindestens eine dieser Fragen bei PHP-Quellcode gestellt hat, sollte unbedingt mal einen Blick auf nWire for PHP werfen.

    Ich habe bei mir in der Firma häufig mit fremdem Quellcode zu tun. Teilweise auch mit echtem “Quälcode”. Um sich dort drin zurecht zu finden, bedarf es einiges an Aufwand. Ich habe vor einiger Zeit nWire für diesen Zweck für mich entdeckt. nWire ist ein Eclipse-Plugin, welches offene PHP-Projekte im Hintergrund analysiert und zahlreiche sinnvolle Verknüpfungen zwischen den Informationen bereit stellt.

    Um die eingangs erwähnten Fragen zu beantworten, hilft der nWire Navigator. Dieser zeigt detailliert die gesammelten Informationen zur aktuellen Datei oder speziell einer Klasse, Funktion oder Variablen an. Über den Navigator kann man dann wie beim MacOS Finder durch die Struktur von links nach rechts navigieren. Ein Klick auf eine Information springt entweder in der entsprechenden Datei direkt in die betroffene Zeile oder öffnet eine Liste mit detaillierteren Informationen.

    nWire im Einsatz

    nWire Navigator im Einsatz

    Wenn der Navigator einmal geöffnet ist (Strg+5), aktualisiert er sich automatisch mit den Inhalten des markierten Elementes im Editorfenster. Unter anderem findet man Informationen darüber wo die Funktion deklariert wird, zu welcher Klasse sie gehört. Wo die Methode/Variable überall im Projekt Verwendung findet wird ebenso dargestellt, wie von dieser Methode aufgerufene weitere Funktionen.

    Für einen einfachen Strukturplan der gleichen Informationen gibt es den nWire Visualizer.

    nwire-visualizer

    Der nWire Visualizer zeigt die Struktur an

    In dem Diagramm kann man auf einen Blick erkennen, dass die Funktion in einer anderen Funktion genutzt wird und selbst einige PHP-Basis-Methoden verwendet. Außerdem sticht einem sofort gelb hervorgehoben ins Auge, dass insgesamt 15 Deklarationen dieser Methode im gesamten Projekt existieren. Ein guter Ansatz um da ein bisschen Aufräumarbeit zu betreiben.

    Der nWire Analyzer, der eigentlich immer beim Öffnen, Speichern und Schließen eines Projektes aktiviert wird lässt sich gezielt für alle oder einzelne Projekte aktivieren. Da er das Öffnen des Projektes merklich verzögert, sollte man nicht blind alle Projekte aktivieren sondern primär die in denen nWire auch genutzt wird.

    Wer jetzt ein bisschen Lust bekommen hat, nWire auch für eigene Projekte einzusetzen, kann das Eclipse-Plugin erstmal 30 Tage testen. Danach kostet es 59 $ oder man schreibt einen Blog-Artikel mit mindestens 300 Wörtern und bekommt kostenlos eine nWire-Lizenz.

    nWire gibt es auch in einer Version mit ähnlichen Funktionen für Java und in einer kombinierten Installation (was sich in reduzierten Lizenzkosten äußert). Für die Installation der PHP-Version wird Eclipse mit PDT 2.1 oder Zend Studio 7 benötigt.

    Weitere Informationen zu nWire gibt es hier: www.nwiresoftware.com

    Bastian Gorke

    Diplom Wirtschaftsinformatiker, Buch-Autor: "XML-Datenbanken in der Praxis", Projektmanager, Gründer (Demobereich)

    Zum Profil von Bastian Gorke

    8 Kommentare »


    • Nils Langner
      am 7. Dezember 2009 um 09:10 Uhr

      Moin Bastian, erstmal danke für den Beitrag. Ich hatte nWire selbst mal kurz installiert, um ein wenig rein zu schnuppern. Irgendwie habe ich aber schnell den Spaß daran verloren. Wie sieht es bei dir aus? Verwendest du es noch fleißig?


    • Steffkes
      am 7. Dezember 2009 um 09:13 Uhr

      Das Ganze jetzt noch ohne diesen Eclipse Schnick-Schnack und man könnte es sogar tatsächlich nutzen :) Schade


    • Sven
      am 7. Dezember 2009 um 09:19 Uhr

      Danke für den Hinweis auf das Tool. Da hast du ja mit über 300 Worten gleich mal eine kostenlose Version eingesackt :)


    • Bastian
      am 7. Dezember 2009 um 09:51 Uhr

      @Nils: Fleissig nicht, aber schon häufiger für genau die oben genannten Anwendungsfälle. Also schrecklichen Legacy-Code entwirren.


    • Steven Klar
      am 7. Dezember 2009 um 16:28 Uhr

      Ich hoffe du hast mit diesem Blog-Eintrag deine 300 Wörter voll bekommen. Danke für den Tipp.


    • Sebastian
      am 7. Dezember 2009 um 16:56 Uhr

      Servus,

      cool, nur leider habe ich keinen PHP Blog. Sollte mir mal einen zulegen.

      Gruß Seb


    • Chris
      am 8. Dezember 2009 um 23:16 Uhr

      mit 439 Wörtern hast du ja jetzt eine lizenz ;)


    • Ladebalken » Überblick verschaffen
      am 23. Dezember 2009 um 12:58 Uhr

      [...] ich auf nWire aufmerksam gemacht. Diese PDT Erweiterung kam mir bekannt vor, den ich hatte dazu in Nils Blog einen Artikel [...]

    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.