Facebook
Twitter
Google+
Kommentare
12

Eclipse – PHP Framework Integration

Ich möchte hier gerne PHP hates me nutzen, um meine neue Idee vorzustellen und würde mich aber gleichzeitig über Ideen zu meiner Idee freuen. Wer mich noch nicht kennt (könnten wahrscheinlich die meisten sein? ;-)), ich bin der Autor von PHP Tool Integration (kurz PTI), welches verschiedene PHP Tools in Eclipse PDT integriert. Auch wenn ich mit dem Projekt noch sehr viel Arbeit vor mir habe, möchte ich dennoch ein weiteres Projekt starten und zwar: PHP Framework Integration (kurz PFI) für Eclipse. Bei dem Projekt soll es darum gehen, eine Unterstützung verschiedener Frameworks in Eclipse PDT zu integrieren. Im ersten Schritt soll es darum gehen, dass man für die Frameworks Code Templates hinterlegen kann und diese für die Erstellung neuer Dateien nutzen kann. Ich stelle mir vor, dass es einen neuen Eintrag „Framework Item“ gibt, der dann einen Wizard aufruft. Der Wizard bietet dann die Auswahl der konfigurierten Frameworks. Wählt man ein Framework aus, so erhält man die Auswahl eines Dateitypes, also ob man z.B. einen Controller, eine View oder dergleichen erstellen möchte. Danach werden alle hinterlegten Templates für dieses Typ angezeigt und das ausgewählte Template dann für die Erstellung der Datei genutzt. Das ganze lehnt sich an die Vorgehensweise von Zend Studio an, soll das ganze aber um die Verwaltung von verschiedenen Frameworks erweitern und entsprechend konfigurierbar machen.

Soviel zu meiner Idee? Was haltet ihr davon? Habt ihr weitere Ideen, Kritiken und/oder Anregungen? Habt ihr Wünsche für weitere Features, welche man im Rahmen dieses Projektes umsetzen kann? Oder vielleicht hat auch Jemand Interesse an an dem Projekt mit zu arbeiten? 😉 Ich freue mich auf euer Feedback 🙂

Über den Autor

Sven Kiera

Ich bin PHP und Java Programmierer aus Leidenschaft. Durch das Programmieren in verschiedenen Programmiersprachen musste ich immer wieder feststellen, welche Vor- und Nachteile diese beiden haben oder anders ausgedrückt: Ich habe beide Sprachen lieben und hassen gelernt. Für mich persönlich gibt es keine "beste" Programmiersprache, sondern es gibt nur die beste Lösung für ein Problem. Beruflich arbeite ich in einer größeren Internetagentur in Düsseldorf und bin dort mitverantwortlich für die Umsetzung größerer Internetportale. Privat habe ich das Projekt PHP Tool Integration (kurz PTI) gestartet, in welches in nun meine meiste Freizeit investiere. Wer mehr zu diesem Projekt wissen möchte, kann meine Homepage besuchen oder einer meiner Vorträge. Und sollte ich dazwischen noch Zeit haben, so versuche ich hier bei PHP hates me zu bloggen.
Kommentare

12 Comments

  1. Also ich für meinen Teil benötige für meine Framework-Unterstützung vor allem: Code-Templates, funktionierende Autovervollständigung und die Möglichkeit Kommandozeilenaufrufe mit konfigurierbaren Parametern auszuführen (ob nun per Klick auf einen Button oder Menüeintrag ist egal).

    Letzteres würde mir zum Beispiel erlauben, das Handbuch oder die API-Doku an der Stelle zu öffnen, wo das Schlüsselwort unter dem Cursor beschrieben wird. Oder aber um ein Skeleton auf Basis der gerade geöffneten Datei zu erzeugen.

    Ich habe die Code-Templates schon als XML vorliegen und für Kommandozeilenaufrufe könnte ich sicher ein paar Ant-Files schreiben.
    Sobald mir jemand eine gescheite Schnittstelle anbietet, kann ich während des Build-Prozesses innerhalb ca. 1 Tages problemlos jeden Editor unterstützen, da ich (fast) alle notwendigen Quellen bereits habe.

    In der NetBeans-Community gibt es Leute, die betteln seit 5 Jahren erfolglos darum (mich eingeschlossen). Wenn Ihr das für Eclipse umsetzen wollt, habt Ihr hier also einen begeisterten Anhänger!

    Reply
  2. Hi,

    im Prinzip keine schlecht Idee.

    Ich persönlich fände es aber wichtiger, wenn PDT an sich stabiler und schneller laufen würde, als noch mehr Neues zu integrieren.

    Wirklich toll fände ich eine Integration von Code-Vervollständigung für die neueren jQuery-Bibliotheken (inkl. jQuery UI).

    Finde es übrigens toll, dass Du Deine freie Zeit dafür aufbringst, der Community das arbeiten leichter zu machen. Danke.

    Gruß Micha

    Reply
  3. Hallo,

    für ZendFramework würde ich mir auch das Springen zu ViewHelpern per Strg+Click wünschen. Ansonsten gerne auch ein Open View aus dem Controller bzw. vice versa.
    Ist evtl. auch was Richtung Doctrine geplant? Model erstellen aus YAML, etc.?!

    Grüße
    Bjoern

    Reply
  4. Hallo Tom,

    die Code-Templates sind schon auf jeden Fall geplant. Bezüglich Autovervollständigung wird es sehr schwierig, dass zu implementieren, aber ich werde es mir auf jeden Fall mal angucken. Bezüglich der Schnittstellen kannst du mir vielleicht deinen Wunsch etwas genauer beschreiben? Kannst mir auch gerne per Mail an sven at kiera dot de schicken :-). Ich denke da lässt sich bestimmt was machen :-).

    Gruß,
    Sven

    Reply
  5. Auch sinnvoll fände ich die Möglichkeit einen Hook zu rufen. Beim Zend Framework könnte ich da bspw. das zf-Tool rufen und mir das File direkt erzeugen lassen…gut, es gibt immer ein paar Probleme mit dem Hinzufügen von Quellcode in vorhandene Dateien, aber neu anlegen ging bei mir bisher fehlerfrei.

    Reply
  6. Da kannste Feedback zu haben =) Achtung wird länger.

    Sinnvoll fände ich, wenn man als Projekteigenschaft das werwendete Framework angeben kann und dann über all nurnoch Krempel für dieses FW angeboten werden. 2 MVC Frameworks in einem Projekt hat ja doch kaum einer und spart dem Benutzer an jeder Ecke noch eine Auswahl/Unterscheidung für welches FW er nun etwas haben/tun/erzeugen will.

    Code Templates könnte man ja sicherlich „easy“ umsetzen, in ZS sind das ja scheinbar auch nur Verlinkungen auf die in PDT bereits eingebaute Template-Bibliothek die auch PDT bereits für „Neue PHP Datei“ nutzt.

    Autovervollständigung sollte PDT schon können wenn das Projekt richtig aufgesetzt ist. FW-Quellen müssen halt im Projekt beinhaltet sein oder als verknüpftes Projekt oder mit den Include-Path Einstellungen des Projektes dem Builder bekannt gemacht werden. Von da an kann es nur noch an lückenhaften PHPDocs scheitern, die Eclipse die Rückgabewerte nicht richtig verraten und Autovervollständigung auf zurückgelieferten Objekten unmöglich macht.

    „Kommandozeilenaufrufe mit konfigurierbaren Parametern“ sollte sich doch mit Run>External Tools erledigen lassen. Da kann man jeden Aufruf einrichten und massig Variablen aus Eclipse einfügen, u.A. auch den gerade selektierten Text, Name der aktuellen Datei etc pp. Das aber für jedes FW ein zu richten könnte nerven. Da die Mechanismen schon da sind könnte die ja im neuen Plugin weiter genutzt werden um direkt sinnvolle Aktionen für das jeweilige FW an zu bieten. Also zum einen die zumeist mitgelieferten Kommandozeilen-Tools an zu sprechen zum anderen sowas wie im Browser (ist ja auch in Eclipse konfiguriert) direkt die API-Doc oder Handbuch nach aktuell selektierten Text zu durchsuchen. Das ganze nett auf Buttons/Menues oder Tastenkombinationen mappen und es wird echt gemütlich ich Eclipse.

    Was die Kommandozeilentools der FWs angeht wäre es nett zu berücksichtigen wenn diese selber Dateien generieren können und sich das mit den Templates ggf überschneidet. Dann im Wizard auswählen können welchen der beiden möglichen Wege er zum Ziel nehmen soll wäre gut. Das CLI-Tool könnte ggf mehr ermöglichen hier als das Template.

    Zu guter letzt noch ein Vorschlag der aber nicht wenig Aufwand wäre:
    Wenn man die Konfigs der versch Frameworks einlesen und per GUI editieren könnte a la Properties-Dialog wäre das natürlich extremst übersichtlich. Aber dazu muss man ständig die verfügbaren Optionen pflegen und ggf Optionen vorsehen die Datei an zu geben wenn sie nicht am default Speicherort liegen könnte etc pp.

    Wenn mir noch mehr einfällt schreib ich noch nen Kommentar =)

    Reply
  7. Hi

    ich kann mich da Micha nur anschliessen.
    Super Klasse, das es das Projekt gibt und uns allen so viel hilft.

    Allerdings finde ich eine Framework Integration auch nicht wirklich nützlich.

    Für manche Projekte ist ein Framework einfach zu mächtig.
    Und welche Frameworks unterstützt man, und welche nicht?

    Ich selber hatte hunderte Probleme PTI überhaupt zum laufen zu bringen.
    Vielleicht sollte man sich lieber mal da ran machen.
    – automatischer download/installation von tools etc.
    – bessere configuration der einzelnen helferlein
    – einfaches erstellen neuer regeln beim codesniffer
    – bessere zusammenarbeit mit xdebug
    etc.

    Reply
  8. Schon mal vielen Dank für das ausführliche Feedback bzw. die Ideen! Die Ideen sind sehr gut und einige lassen sich wahrscheinlich ohne größere Aufwände umsetzen. Ich werde mich in den nächsten Tagen mal an die Planung machen, aber es wird bis zur ersten Version wohl noch was dauern 😉

    Reply
  9. @Tom
    Du sagtest, das die Netbeans Commmunity darum seit 5 Jahren erfolglos bettelt, aber Netbeans 6.9 enthält eine ZF Integration mit Kommandozeilen Tool und automatischen „Gehe zu“ Eintrag zum Action Controller in den View Dateien und andersherum etc.
    Wünschenswert wäre noch (auch für PFI) dass abhängig von den Routing Regeln, wenn „Run File“ oder so aufgerufen wird, auch die richtige Controller Action im Browser geöffnet wird.

    Reply
  10. Was ich nicht machen kann bzw. werde, ist die feste Implementierung von Logik eines oder mehrerer bestimmter Frameworks. Dies bezieht sich z.B. auf das ermitteln von Dateien anhand Framework spezifischer Informationen für beispielsweise die Codevervollständigung. Ich habe leider nicht die Zeit mich um eine spezielle Integration von Frameworks zu kümmern, da dieses eine Neverending Story werden würde (kontinuierlicher Abgleich der Logik und immer mehr Frameworks). Ich möchte mich hierbei erst mal um allgemeine Implementierungen kümmern, die mit jedem Framework genutzt werden kann, wie z.B. die bereits erwähnte Bereitstellung von Templates für das Erstellen neuer Dateien. Was danach kommt, mal sehen 🙂

    Reply
  11. An sich ist die Idee gut. Ich würde es jedoch mehr schätzen wenn PTI erstmal stable wäre. Unter OSX gibts nach wie vor Exceptions beim Erstellen von einfachen Unittests.

    Reply
  12. Es wird für PTI demnächst ein Bugfix Release geben, welches ein paar Probleme beheben sollte. Ansonsten steh ich leider bei PTI vor dem Problem, dass das Projekt gut gewachsen ist und nun ein paar Design Fehler schwer ins Gewicht fallen und ich aktuell auch an einem Refactoring, welcher mehr Möglichkeiten und mehr Stabilität bringen sollte. Nur Aufgrund meiner aktuellen Zeitknappheit wird sich das Ganze leider aber noch was verzögern. PFI wird sich hier natürlich hinten anstellen müssen, aber wollte trotzdem schon mal Ideen sammeln, welche ich ggf. bereits berücksichtigen kann. Ansonsten bin ich natürlich für jede Hilfe dankbar 😉

    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