Tool Time für PHP-Entwickler

Zend Studio hat sich zur führenden Entwicklungsumgebung für PHP gemausert, hat aber noch immer einige Ecken und Kanten.

Artikel erschienen in Swiss IT Magazine 2006/04

     


Über die letzten Jahre hinweg ist Zend Studio, die integrierte Entwicklungsumgebung (IDE) der israelisch-amerikanischen Firma Zend, zur Standardlösung für die Anwendungsentwicklung mit PHP geworden. Dabei hat Zend besonderen Wert auf Teamfähigkeit und effektive Analyse und Problembehebung gelegt. Doch ein paar Ecken und Kanten sind leider stehengeblieben, wie die aktuelle Version 5.1 beweist.


Erwartete Leistung

Im Vergleich zu früher hat es Zend beim Sprung von Version 4 auf 5 etwas ruhiger genommen. Die Modifikationen an der Software sind entsprechend verhalten ausgefallen, und auch die getestete Version 5.1 bringt neben einigen Bugfixes nur Unterstützung für die Sprachfunktionen von PHP 5.1 mit, die es noch nicht in die erste Version des 5er-Zweiges geschafft hat.
Besonders mager weggekommen sind dabei die Editing-Funktionen. Sie waren in Zend Studio noch nie sonderlich spektakulär, und dies ist auch in der aktuellen Version nicht anders geworden. Syntax-Highlighting, Code Completition, automatische Syntax-Überprüfung beim Tippen, Klassen-, Funktions- und Konstanten-Browser, die sowohl auf Datei-, Projekt- als auch Sprach-Ebene arbeiten, sowie klassische Editier-Funktionen kennt man bereits seit etlichen Versionen. Sie stellen eine solide und effiziente Arbeitsgrundlage dar, die im Vergleich zur Version 4 neben der selbstverständlichen Unterstützung von PHP 5.1 einzig um einen Resource Browser, Unterstützung für Code Folding sowie Code Completition für verschachtelte Methoden-Aufrufe erweitert wurde.





Der Resource Browser ermög­licht es, mit Hilfe einer Maske innerhalb eines Projekts nach Klassen, Funktionen oder Konstanten mit einem bestimmten Namen zu suchen und zu deren Definition zu springen. Dorthin konnte man bisher nur relativ umständlich gelangen, indem man in einem Code-Fragment auf einen Funktionsaufruf oder Konstanten-Verwendung bei gleichzeitigem Drücken der Control-Taste geklickt hat. Damit stellt der Resource Browser eine logische Ergänzung zum Projekt-Inspektor dar, in dem nur manuell nach den entsprechenden Definitionen «gesucht» werden konnte.
Code Folding hilft einem dabei, auch in grossen Scripts mit mehreren tausend Zeilen die Übersicht zu wahren. So ist es möglich, Dokumentationsblöcke, Klassen- oder Funktionsdefinitionen auszublenden, an denen man im Moment nicht arbeitet. Die Code Completition kann zudem mit verketteten Methoden-Aufrufen umgehen und so den Programmierer auch bei Konstrukten wie $foo->bar()->blubb() bei der Vervollständigung der Parameter unterstützen.







Auf Verbesserungen beim Projekt-Management oder beim Zugang zu hinterlegten Code-Fragmenten hat Zend leider verzichtet. So sucht man beispielsweise die Möglichkeit, auf Projekt-Basis zwischen den verschiedenen PHP-Versionen umschalten zu können, nach wie vor vergeblich. Dies wäre insbesondere für Programmierer wichtig, die quasi gleichzeitig an verschiedenen Projekten arbeiten, die von unterschiedlichen PHP-Versionen abhängig sind. Verbesserungswürdig wäre auch der Zugriff auf hinterlegte Code-Konstrukte oder Code- Snippets, die entweder nur via Code-Completition oder über mehrere Klicks zugänglich sind. Zudem leidet der Editor mindestens auf MacOS X bei der Verwendung unterschiedlicher Zeichensätze unter einigen Macken.


Starke Integration

Eine der Stärken von Zend Studio ist die Integration von Werkzeugen zur Verwaltung grösserer Projekte. Diese Tradition baut auch die Version 5 weiter aus, auch wenn weder die neu hinzugekommene Subversion-Integration noch der WSDL-Generator restlos überzeugen konnten.
Nachdem Anwender ihren Quellcode bereits über Jahre mit Zend Studio und CVS verwalten konnten, kann die neue Auflage endlich auch mit dem CVS-Nachfolger Subversion umgehen. Dabei können wie auch bei CVS die wichtigsten Operationen direkt aus dem Kontext-Menü ausgelöst werden. So spart man sich oftmals den Wechsel zu einem externen Subversion-Werkzeug. Allerdings wäre es wünschenswert, wenn insbesondere die Funktion zum Anzeigen von Differenzen zwischen Arbeitskopie und Versionskontrolle auch Produkte von Drittherstellern unterstützen würde. Denn das in den Subversion-Client eingebaute Kommando, welches von Zend Studio verwendet wird, unterstützt nur den zeilenweisen Vergleich. Zudem verschluckt sich der eingebaute Subversion-Client immer wieder an Dateien, die auf SMB-Shares liegen.





Ebenfalls ein Grund zur Freude dürfte der WSDL-Generator sein, insbesondere für Anwender, die viel mit Webservices arbeiten. Der WSDL-Generator erzeugt WSDL-Dateien für SOAP-Web­services direkt aus dem Programmcode heraus, so dass die Dateien nicht mehr mühselig von Hand erstellt werden müssen. Dies ist nämlich nicht nur aufwendig, sondern auch fehleranfällig. Durch die Erstellung der WSDL-Dateien führt ein Wizard. In einem ersten Schritt lässt sich eine Konfigurationsdatei anlegen, welche die grundlegenden Voreinstellungen für die WSDL-Erstellung aufnimmt. In einem weiteren Schritt können die Dateien und Klassen ausgewählt werden, welche die Grundlagen für das WSDL darstellen. Nachdem dies getan ist, erstellt Zend Studio automatisch aus dem Quellcode die WSDL-Datei, die nachher bei Bedarf noch editiert werden kann. Damit bringt Zend Studio eine Funktionalität mit, die von vielen Programmierern schmerzlich vermisst wurde, und stopft zudem eine Lücke, die eigentlich von der PHP-SOAP-Erweiterung geschlossen werden sollte. Aber Achtung: Nicht sauber oder ungewöhnlich formatierte Dokumentationsblöcke können dazu führen, dass sich der WSDL-Generator totläuft.






Ebenfalls erweitert wurden die Möglichkeiten zum Zugriff auf Remote Server. Neben Unterstützung für klassisches FTP und SFTP (Dateitransfer via SSH) versteht Zend Studio nun auch FTP über SSL. Nach Support für WebDAV sucht man dagegen weiterhin vergebens.


Für mehr Qualität

Die Prunkstücke von Zend Studio sind nach wie vor die Funktionen für Analyse, Debugging und Profiling. Sie sind, auch wenn beispielsweise der freie Debugger und Profiler xdebug im Hinblick auf Version 2 grosse Fortschritte gemacht hat, nach wie vor das Beste, was es für PHP in diesem Bereich gibt. Kernstück der Funktionen ist der Zend-Studio-Server, der ab der Pro-Version zur IDE dazugehört. Er wird idealerweise auf einem zentralen Entwicklungsserver installiert, auf den sämtliche Team-Mitglieder zugreifen können. Er stellt neben dem Remote Debugger vor allem die Profiling-Funktionen zur Verfügung. Mit ihrer Hilfe lässt sich herausfinden, welche Funktionsaufrufe und Scriptabschnitte besonders viel respektive wenig Zeit zur Ausführung benötigen. Dank übersichtlicher Diagramme und detaillierten Call Traces lässt sich mühelos herausfinden, wo eine Applikation noch optimiert werden muss.


Analysieren und Testen

Sehr praktisch ist auch der Code Analyzer. Er überprüft Code auf seine Qualität und deckt Schwachstellen wie Tippfehler, nur einmal benutzte Variablen, falsch verwendete Token oder unerreichbaren Code auf. Seit Zend Studio 5 warnt er auch vor potentiell gefährlichem Code wie include($_GET['foo']). Allerdings könnte der Analyzer diesbezüglich noch etwas Feintuning vertragen, da er viele false positives meldet.
Die wirklich spannenden Neuerungen in diesem Bereich stehen leider nur Käufern der Enterprise-Version zur Verfügung, die zudem die Produktionsumgebung Zend Platform im Einsatz haben. So lassen sich zum Beispiel aufgetretene Fehler samt den Daten, welche den Fehler ausgelöst haben, in den Debugger von Zend Studio laden und auswerten. Damit wird es noch einfacher, Bugs zu beheben. Allerdings nur in der Enterprise-Version.
Ebenfalls bedauerlich ist, dass Zend Studio nach wie vor keine Unterstützung für Unit-Testing mitbringt, das auch bei der Entwicklung von PHP-Applikationen immer wichtiger wird. Allerdings besteht Hoffnung: Sebastian Bergmann, Entwickler von PHP­Unit, hat in seinem Weblog bereits angedeutet, dass er mit Zend im Kontakt steht und damit rechnet, dass Unterstützung für PHPUnit demnächst in Zend Studio integriert wird.



Kommentare
Mein Lieblings-PHP-Tool ist Codelobster - http://www.codelobster.com
Mittwoch, 19. Mai 2021, Stanislav



Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Vor wem mussten die sieben Geisslein aufpassen?
GOLD SPONSOREN
SPONSOREN & PARTNER