Facebook
Twitter
Google+
Kommentare
33
Willkommen bei "the web hates me". Mittlerweile hat unser Team ein tolles neues Monitoringtool für Agenturen gelauncht. Unter dem Namen koality.io haben wir einen Service geschaffen, der er Agenturen ermöglicht mit sehr geringen Kosten alle Ihre Webseiten zu überwachen.

Eclipse PDT – PHP Development Tools

Ziel dieses Artikels ist es einen Überblick über die Möglichkeiten von PDT zu schaffen.

PDT ist eine IDE (Integrated Development Environment) zum entwickeln von PHP Programmen. Das ganze setzt nahtlos auf der Eclipse Plattform auf und man kann so die vollen Vorzüge einer IDE genießen. PDT ist Open Source und lizensert unter der Eclipse Public License. Gehegt und gepflegt wird dieses Plugin durch die Zend Community.

Nun stellt man sich vielleicht die Frage, warum soll ich eine IDE benutzen? Mein Editor ist schlanker und man kann mal eben schnell was verändern, ohne größeren Aufwand.

Es ist Quatsch zu denken, sich entscheiden zu müssen zwischen einer IDE und einem Editor. Ich nutze auch weiterhin mein Gedit oder vi um mal eben schnell was zu ändern. Aber, und das ist der springende Punkt, wenn man viel und lange programmiert, dann kann man durch eine IDE deutlich an Geschwindigkeit zulegen.

Viele kleine Hilfestellungen die einem den Alltag erleichtern. Klammern werden automatisch geschlossen, sowie fehlende Semikolons. Die Anzeige im Kontext von Argumenten für Funktionen und Methoden und die Möglichkeit den Code direkt im Editor zu debuggen.

Hauptkomponenten sind, Editor (Syntax highlighting, code assist und code folding), Inspection (file / project outline und PHP explorer view) und ein Debug Tool, wahlweise der Zend Debugger oder Xdebug von Mozilla.

Auch WTP, die Web Tools Plattform, ist mit dabei und fügt die selben Funktionalitäten wie PDT für HTML, CSS, XML und Javascript hinzu.

Alles in allem eine Umgebung für alles was das Webentwickler Herz höher schlagen lässt. Besser wie Adobe Dreamweaver und dazu noch ohne WYSIWYG, was eh kein Mensch braucht.

So sieht die Arbeitsumgebung „Out of the box“ aus.

pdt_gui

Features

Navigation

Als nächstes möchte ich auf einige Features eingehen, die den Arbeitsalltag deutlich erleichtern. Zum Beispiel die Outline. Ein Fenster, welches alle Klassen, Methoden, Funktionen und Variablen übersichtlich und nach Zugehörigkeit auflistet. Nicht nur das man dadurch schnell den Überblick hat, was alles an Klassen und Funktionen usw. vorhanden ist. Man kann auch mit einem Mausklick auf die gewünschte Klasse direkt zu ihr, im Quellcode Fenster, springen. Bei sehr langen Programmen sicher ein Vorteil.

Fährt man mit der Maus über eine Funktion oder Klasse dann bekommt man Informationen wie den Ort, eine kurze Beschreibung, die verfügbaren Parameter und einen return Wert angezeigt. Definieren kann man diese Daten mit CSSDoc Syntax. Sollte sich die die Funktion nicht in der selben Datei befinden, kann man bequem durch halten der strg-Taste und Linksklick zur entsprechenden Funktion in der Datei springen. Die Datei wird in einem neuen Reiter geöffnet. Man kann sich aber auch mit der selben Kombination auch einfach den Quellcode anschauen, ohne die Datei extra öffnen zu müssen.

Man kann wie in vielen anderen IDEs und Editoren seinen Quellcode in Blöcken auf- und zuklappen. Sprich Code Folding ist möglich und praktisch wie ich finde.

Tipparbeit

Eine sicherlich nette Komfortfunktion ist beim schreiben von Variablen, bzw. beim tippen des $-Zeichens, das sich ein kleines Fenster öffnet, welches einem alle verwendeten Variablen, sowie alle Globalen Variablen auflistet. Ebenso ist ein Seitenfenster enthalten welches alle PHP Funktionen nach Kategorie auflistet. Falls man mal eine sucht muss man nicht gleich das Manual bemühen.

PDT unterstützt einen auch beim schreiben von PHPDoc Kommentaren, Es reicht /** + Enter zu tippen und schon kann man seinen Kommentar bequem schreiben. Jede neue Zeile steht der * an der richtigen Stelle. Wenn wir schon mal bei den Kommentaren sind, hier gibt es auch zwei tolle Features. Wenn man einen einzeiligen Kommentar mit TODO anfängt, dann wird dieser in die Liste der Tasks eingetragen und links neben dem Quelltext ein Symbol zum schnellen wiederfinden. Eine nette Gedächtnisstütze, für einen selbst und andere. Anstatt TODO, kann auch FIXME verwendet werden. Der Unterschied ist, dass in der Tasks beim FIXME Task, ein rotes Ausrufe Zeichen davor steht.

Ebenfalls gibt es sog. Templates, mit denen man oft gebrauchte Befehlsfolgen mit wenigen Schritten in seinem Programm hat. Einfach mal it eingeben, dann strg+Leertaste und es öffnet sich ein Menü in dem man zusätzlich zu Standardfunktionen, die mit it etwas zu tun haben, noch Templates angeboten bekommt. Unter Window > Preferences > php > Templates kann man eigene hinzufügen.

Wer sich nicht die Arbeit machen will seinen Code immer selbst zu formatieren, kann das auch über Source > Format machen. Dann wird der Quellcode im PEAR Standard formatiert.

Das war es erst einmal an dieser Stelle. Ich möchte ja nicht alles verraten. Ein wenig Erkundungsdrang sollte man eh mitbringen.

Fazit

Eclipse PDT ist eine sehr umfangreiche IDE und brauch sich keinesfalls vor ihrem großen Bruder dem Zend Studio verstecken. Zudem ist sie kostenlos und die beste Wahl, für mich persönlich, der kostenlosen Alternativen.

Über den Autor

Oliver Klee

Oliver Klee ist Web Developer Frontend bei einer Agentur in der nähe von Frankfurt und ist dort verantwortlich für Technische Konzeption und Programmierung interaktiver Frontends in komplexen Internet- und Intranet-Projekten sowie die Realisierung von Online-Applikationen.
Kommentare

33 Comments

  1. Leider fehlt PDT ein entscheidendes Feature (das PHPEclipse hat): Es wird kein unerreichbarer code oder reads auf uninitialisierte variablen angezeigt. Und das ist Stuhl.

    Reply
  2. Habe ihn mir auch bereits runter geladen, kam aber noch nicht dazu ihn zu testen. Ind er Firma müssen wir leider Dreamweaver nutzen, da mehrere Entwickler an einer Seite arbeiten udn durch die CheckOut funktion in Dreamweaver es hier keine Überschneidungen gibt und jeder weiß wer an welcher Datei arbeitet. Keine rist jedoch von uns mit DW zufrieden. Wir suchen daher nach einer neuen Lösung und wollten auch schon Eclipse testen, doch sahen wir hier keien Lösung, die uns DW bei der Arbeit mit mehreren Entwickler liefert. Also das Sperren von Dateien. Vielleicht hast du ja hier ein paar Empfehlungen oder Erkenntnisse bezüglich Eclipse / PDT.

    Reply
  3. xdebug ist von mozilla?
    diese wundervolle extension hat doch derick rethans geschrieben!

    Finde PDT auch super klasse nur fehlt mir hier tierisch im vergleich zum Zend Studio die tolle PHPUnit integration die schon was hat und den profiler 🙂
    PDT2.0 hat bis auf PHPUnit aufgeholt und netbeans brescht auch immer weiter vor und hat mittlerweile auch eine phpunit integration. bisher bin ich aber immer wieder zurück zu eclipse gegangen.

    Sehr praktisch tip für alle eclipse nutzer ist auf alt + pfeil nach oben/unten, probierts mal mit einer oder mehreren zeilene aus 🙂

    Reply
  4. Da mir Eclipse PDT in der neuen Version ständig angestürtzt ist, bin ich mal aif NetBeans mit PHP umgeschwenkt.
    Ich finds klasse! Ein paar nützliche Funktionen wie die Integrierte PHP-Doc aus Eclipse fehlt mir zwar, aber dafür hat es wieder andere Vorteile. Es ist auf jeden Fall mal ein Blick wert! ;o)

    Grüße,
    Jacka

    Reply
  5. @maXus: Soweit ich weiß, ist es auch möglich mit Eclipse ein CVS / CVN System zu bedienen. Das würde das von Dir geschilderte Problem wahrscheinlich lösen.

    Ansonsten ist Eclipse seit geraumer Zeit auch meine erste Wahl. Im Grunde genommen bietet Eclipse ja fast alle Funktionen, die Zend Studio auch mitbringt. Gut, den Komfort vom Zend Studio erreicht man mit Eclipse zwar noch nicht ganz. Aber das Arbeiten mit Eclipse an größeren Projekten geht ebenso schnell von der Hand. Zumindest habe ich persönlich keine weiteren Einschränkungen feststellen können.

    Reply
  6. CVS ist veraltet. SVN ist besser. Aber nichtsdestotrotz: Es gibt SVN-Support für Eclipse 😉

    Ich bin übrigens ebenfalls PDT-Jünger. Obwohl ich nie abgeneigt bin, mit andere IDEs anzugucken.

    Reply
  7. Hmm, da mein Kommentar geschluckt wurde, weil zu viele Links, schreib ich ihn nochmal neu. Bitte gerade dann den andern löschen Nils 🙂

    @Maxus: Ja gibt es. Nennt sich subclipse. Ist Subversion für Eclipse und unterstützt pessimistisches (read lock write) und optimistisches ( copy modify merge ) Versionieren.

    Reply
  8. Danke euch. Von Subversion habe ich bereits gehört, jedoch wurde mir dabei auch gleich gesagt, dass sich da jeder Entwickler einen eigenen Server aufsetzen muss (XAMPP bspw.) und dann später alles auf den dev Server geschoben wird. Ziemlich Kompliziert also am Ende. Besonders weil jeder Entwickler sich immer die aktuellen Dateien holen müsste, obwohl es einen dev Server dafür gibt, auf dem normalerweise alle Arbeiten. Werde mir das aber mal ansehen. Danke für die Tipps.

    Reply
  9. @maXus: Früher oder später wird wohl jeder ein Subversion, CVS oder Perforce verwenden müssen. Ist nur eine Frage der Zeit. In der professionellen Softwareentwicklung ist es fester Bestandteil und in PHP gehört es eigentlich auch schon zum feinen Ton dazu. Wenn du mal ein paar Infos dazu haben willst, dann kannst du dich ja mal melden.

    Reply
  10. Im Grunde braucht nicht jeder Rechner ein CVS, Subversion oder wie sie alle heißen, System. Es reicht der dev Server. Du holst dir über einen sog. Checkout eine Arbeitskopie des Projektes mit der du dann arbeiten kannst. Mit einem sog. commit veröffentlichst du die Dateien wieder auf dem dev Server. Das ist jetzt sehr komprimiert in aller kürze, hebelt die Geschichte mit mit „jeder Entwickler einen eigenen Server aufsetzen muss“ aus.

    Hier kannst du dir ja mal die Grundlegenden Konzepte durchlesen. Ist gut geschrieben und mit Schaubildern illustriert. svnbook von red bean. Einfach mal googlen.

    Leider sind keine Links erlaubt? Fehlermeldung? Oder generell eine Meldung wäre toll, warum mein Kommentar nicht gepostet wird @Nils 😉

    Reply
  11. @maXus bitte wechsle deine Berater! Versionsverwaltungen zwingen dich definitiv nicht zum Aufsetzen eines eigenen Servers. Sie arbeiten unabhängig von der Programmiersprache und der Entwicklungsumgebung. Damit hat jeder Entwickler die freie Wahl seines Editors solange er sich an die Vorgaben zu Dateikodierung hält. Ihr braucht nur einen zentralen Rechner administrieren – oder nehmt Git.

    Ich arbeite an großen Projekten mit Eclipse und NetBeans. Beide bieten sehr gute PHP Unterstützung. Mir persönlich ist NetBeans aktuell lieber, da z.B. der integrierte Javascript Debugger nice ist.

    Reply
  12. Zu der „Jeder-Entwickler-Braucht-Seinen-Eigenen-Server“-Problematik:

    Wie die anderen schon gesagt haben: Stimmt nicht.

    Zu Comment#11: Jedes Mal bevor was auf dem Dev-Server getestet werden kann, einen Commit machen zu müssen wäre ja wahnsinnig. Warum richtest du auf einem zentralen Webserver nicht für jeden Entwickler ein (separates) Samba-Share ein, auf das der Webserver und die IDE zugreifen können. Damit hast du einen Server und kannst trotzdem die Vorteile von Revision Control nutzen…

    Reply
  13. Da muss ich Timo recht geben. Samba Share oder eine Virtuelle Maschine auf dem das ganze läuft. Dann kannst du auch unabhängig vom Server arbeiten und nutzt die Rechenkraft deines eingenen PCs.

    Reply
  14. Meine Empfehlung geht eindeutig nach PHPEclipse. Wenn es um große Projekte geht, hat PHPEclipse keine Probleme damit. PDT macht ab ca. 1000 Dateien schlapp. Weiterhin ist das Feature, wie es #1 beschrieben hat, auch ein sehr nützliches Kriterium.

    Weiterhin viel Spaß mit PDT und PHPEclipse.

    Reply
  15. So weit so gut. Eclipse läuft, der FTP Zugriff ebenfalls und das Bearbeiten der Dateien ebenfalls. Für mich allein und Privat habe ich einen neuen Editor gefunden. Parallel habe ich Netbeans und auch Actana getestet. Mit Actana kam mir die Verbindung mit dem FTP zwar wesentlich schneller vor, doch so richtig war das nix. Netbeans war ziemlich übersichtlich, doch eine FTP Verbindung habe ich erst gar nicht hin bekommen 🙁

    Zum Thema SVN und Eclipse:
    Habe mir einen Testrepository angelegt und so komme ich auch gut damit klar. An sich ist das mit dem Mergen auch gar nicht so verkehrt. Im Team haben wir da halt noch ziemliche Probleme gesehen bzw auch von anderen Kollegen mitbekommen, die das Mergen ganz weg lassen, da sie damit arge Probleme hatten. Eine read-lock-write Kombination wie bei Dreamweaver habe ich leider nicht hin bekommen. Vielleicht habt ihr da ja noch ein paar weitere Informationen für mich (@Oliver Klee). So richtig lassen sich meine Kollegen mit der Merge Methode nämlich noch nicht überzeugen 🙂

    Danke euch schon einmal im Voraus.

    Reply
  16. Hallo maXus,

    sei mir nicht böse, aber du gehst sehr oberflächlich an diese Sache heran.
    1. NetBeans hat leider nur die FTP Verwaltung für remote Projekte. Findest du im 2. Schritt bei Neues Projekt.

    2. Die Arbeitsweise und der Skill deines „Teams“ sollte sich den Erfordernissen anpassen. Was sollen wir, die das Mergen auch nur durch Training und Einlesen gelernt haben, dir raten? Copy&Paste von Erfahrungen und handwerklichen Fähigkeiten gibt es noch nicht.

    Eclipse und auch Netbeans machen es dir dabei schon so einfach. Du bekommst die Mischfehler angezeigt und kannst sie sogar mit schöner farblicher Hinterlegung durchsehen und live mischen.

    Also mein Tipp: Macht es einfach und lernt dabei!

    Reply
  17. 3. Hab ich vergessen – nebenbei hat SVN auch einen Lock Mechanismus!

    Den brauche ich nur nicht, da die Stärke des Teams ja das gemeinsame Entwickeln ist.^^

    Reply
  18. @maXus: Also ich finde deine Vorgehensweise nicht so verkehrt. Du solltest aber vielleicht erst mal ein wenig mit SVN rumspielen, bevor du es deinen Kollegen schmackhaft machen kannst. Nimm dir doch mal eine Woche Zeit und schreibe in deiner Freizeit mit einem Freund ein kleines Programm, das ihr über SVN koordiniert.

    Reply
  19. Ich persönlich habe da nichts gegen. Mir gefällt es sogar wie es ist, da wie erwähnt, alles schön aufgezeigt wird was geändert wurde und was nicht. Ich bin ein riesen Fan davon geworden. Wie gesagt, privat werde ich es eh einsetzen. Die Lock-Funktion fehlt dem Team halt noch. Da habe ich jedoch auch keine informationen gefunden. Wenn es das geben würde, würden wir hier wahrscheinlich sofort alle Steine ins Rollen bringen. Werde aber weiter suchen, bis ich das passende gefunden habe. So schnell bringt mich da nichts weg, da ich den DW vom Rechner haben will.

    Reply
  20. Hallo maXus

    Deshalb noch einmal mein Rat: Zeige es nicht deinen Kollegen!

    Das Lock so wie ihr es benutzen wollt macht SVN schnell zum Feind statt Helfer. Wer locked lernt doch nie das Mergen. Alle Vorteile der VERSIONSVERWALTUNG werden abgeschalten. Was ist wenn einer die Sperre aus Vergesslichkeit nicht entfernt, krank wird,…

    Wenn ihn nur die ständigen Änderungen anderer stören, kann er einen eigenen Branch benutzen. Aber davon rate ich einem Anfänger eher ab.

    Seid ihr nur am mergen, dann hab ihr einfach die falsche Arbeitsteilung. Wenn deine Innovationen nur auf Ablehnung stoßen hast du das falsche Team.

    Dir kann ich nur gratulieren, denn du hast ja die Vorteile sehr schnell erkannt und angenommen.

    Reply
  21. @Jens: Also falsches Team finde ich übertrieben. Wie bei allen Themen aus der Softwaretchnik ist es am Anfang schwer den Benefit zu erkennen, wenn man es noch nie vorher gemacht hat. Ich hatte damals ein super Team, aber bis sie Unit Testing als hilfreich angesehen hatten, war es ein langer Weg. Ich denke, dass es genau so mit SVN ist.

    Reply
  22. Hmm interessanter Einwurf,

    aber Unit Test betreffen nicht nur deinen Workflow, sondern auch deinen Codingstil UND DAS ist schon etwas schwerer zu verkaufen.

    Reply
  23. Ich finds trotzdem schön, dass diese Diskussion rege weiter geführt wird, auch wenn das Thema schon etwas älter ist. Hatten heute ein Meeting und das Team ist mittlerweile auch ziemlich überzeugt. Das Locking kam jedoch nicht so gut an, was ja auch richtig ist. Jetzt muss nur noch ein Testcase aufgesetzt werden. Bin gespannt wann.

    Reply
  24. Freut mich wirklich sehr das die Diskussion so weit geführt wurde und mein Artikel, bei dir @maxus, mit dazu angeregt hat, was neues auszuprobieren. Toll finde ich auch, das hier in den Kommentaren die Fragen dies gab zu svn schnell und gut beantwortet wurden.

    Kann mich meinen Vorrednern nur anschließen. Ein „locken“ der Dateien ist denkbar schlecht und man beschneidet die Möglichkeiten von svn. Das „online Buch“ zu subversion hast du gefunden oder? „svnbook von red bean“ (Deutsch) Kommentar 11… ein direkter Link funktioniert leider nicht.

    Reply
  25. Wir setzen auch Zend Studio. Wir würden aber gerne auch mal über den Tellerrand hinausschauen jedoch ist das Problem das z.B. PDT meines Wissens keine direkten FTP Verbindungen verwalten kann, sodass man nicht mal schnell ne Datei auf einem Server bearbeiten kann. Wichtig währe uns da eine vollständige Änderungshistorie und am besten mit einer Mergefunktion. Nein es macht kein Sinn in dem Bereich ein VCS einzusetzen. Da nur immer kleine Änderungen vorgesehen sind und das den Aufwand nicht des einrichten eines VCS überwiegen würde. Hat jemand eine Idee oder kennt jemand eine IDE die eine vernünftige lokale History beinhaltet, die mit direkten FTP-Verbindungen und Remoteworking umgehen kann?

    Reply
  26. … „Nein es macht kein Sinn in dem Bereich ein VCS einzusetzen“ …
    Du möchtest eine Versionsverwaltung ohne VCS, weil du Aufwand scheust.

    Hmm, ich nehme in solchen „Projekten“ GIT.
    Nimm den Hype und GitHub mal beseite und es bleibt ein schlankes Tool, das lokal eingesetzt deine Versionen verwaltet und merged. Teilen musst du das mit niemandem.

    Die IDE bleibt dir weiterhin freigestellt.

    Reply
  27. @tomlose PDT kann kein FTP, aber Eclipse lebt von seinen Plugins. Und davon gibt es verdammt viele. Unter anderem zum Beispiel einen Remote Explorer. Dieses Plugin beherrscht verschiedene Protokolle wie WebDav, SSH und FTP.

    Alternativ könntest du auch den FTP-Share einfach mounten (als Laufwerk im Betriebssystem einbinden). Alternativ zu FTP ginge auch SSHFS, je nachdem was für ein Betriebssystem der Server hat.

    Google einfach mal nach den Alternativen. Bei Fragen kannst du dich gerne bei mir melden.

    Ich verwende seit recht langer Zeit schon PDT. Davor habe ich PHPEclipse verwendet, weil es ein tolles Smarty-Plugin hatte (ja, damals habe ich noch mit Smarty gearbeitet :-D). Da PHPEclipse nicht mehr weiterentwickelt wurde, habe ich mich dann mal nach Alternativen umgesehen uznd bin dann auf PDT gestoßen und dann auch dabei geblieben. Zend Studio for Eclipse ist ja ganz schön, aber die Lizenzierung finde ich einfach daneben. Als Firma will ich natürlich den Support und die Updates haben. Aber für nicht kommerzielle Zwecke sollte das Ding endlich frei zugänglich sein, ohne die Subscription für Updates und Support.

    Da ich es nicht einsehe über 500€ für eine IDE zu bezahlen, bzw. für das, was Zend dabei packt, bleibe ich bei PDT, denn Zend Studio for Eclipse ist nur ein gepimptes PDT, wo einem einige Dinge out of the Box schön einfach gemacht werden. Diese Dinge lassen sich aber (fast) alle manuell nachrüsten. Ist eben ein wenig Arbeit… Aber die mache ich gerne, wenn ich damit 500€ sparen kann 😀

    Was hier ein Kommentator behauptet, kann ich nicht nachvollziehen: einige meiner Projekte haben weit über 1000 Dateien und keine Version von PDT, die ich bisher eingesetzt habe, hatte Probleme damit.

    Reply
  28. @Christian

    Ich kenne die Probleme mit großen Projekten. Sind aber weniger PDT abhängig finde ich. Folgende Kombi macht das Arbeiten zu Hölle:
    – Remote Subversion Repo
    – mehrere Entwickler mit konkurrierenden Commits

    Habe das mit verschiedenen SVN Connectoren und Protokollen erlebt.

    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