Übersetzung des Blog-Postings von Manuel Lemos, Administrator von PHP Classes
Ich war sehr positiv überrascht, als ich erfuhr, dass Borland/CodeGear ein IDE-Produkt für die PHP-Entwicklung herausbringt. Dabei bezog sich meine Überraschung nicht so sehr auf das Produkt selbst, vielmehr dachte ich mit Freude an die Bedeutung für den PHP-Markt und die PHP-Gemeinde.
Wir alle wissen, dass PHP ohne Zweifel die populärste Sprache in der Web-Entwicklung ist. Aber wenn sich bekannte Firmen wie Borland (Anmerkung des Übersetzers: CodeGear) auf den Spuren von Industriegiganten wie IBM und Microsoft des PHP-Marktes annehmen, dann hat das eine große Bedeutung für die Gegenwart und die Zukunft des PHP-Einsatzes vor allem in der Unternehmenswelt.
Aber lassen Sie uns wieder zu dem Produkt selbst zurückkehren: Delphi for PHP. Zunächst möchte ich klarstellen, dass ich weder Delphi-Benutzer noch Entwickler von Desktop-Anwendungen bin, zurzeit noch nicht einmal Windows-Anwender. So werde ich jetzt mein Bestes geben, um mich in die Lage eines PHP-Entwicklers zu versetzen, mit einem Werkzeug für Rapid Application Development (RAD) für Windows arbeiten möchte.
Mein erster Eindruck ist, dass die Entwicklungsumgebung sehr umfangreich ist und ich bin sicher, dass dieser Bericht der Fülle an Fähigkeiten dieser PHP IDE nicht gerecht werden kann. So werde ich versuchen, das herauszustellen, was meiner Meinung nach die meisten Leute, sich für RAD für Windows interessieren, wissen möchten.
Trotz des Namens Delphi for PHP handelt es sich nicht wirklich um ein neues Projekt. Es handelt sich um eine PHP IDE basierend auf qadram qstudio.
Die Oberfläche ist guter Standard für diese Art IDE. Es gibt einen Projektmanager, der die verschiedenen Elemente darstellt, die vom Anwendungsentwickler gestaltet werden.
Wie in den gängigen IDEs für Desktop-Anwendungen, wie Delphi oder Visual Basic, können Projekte aus Units und Formularen bestehen. Die Units sind hier PHP-Skripte und die Formulare repräsentieren eine Anwendungsansicht, die als Webseiten betrachtet werden kann. Letztendlich handelt es sich bei den Formularen auch um PHP-Skripte. Der Unterschied zu den Units besteht darin, dass Formulare sowohl eine Code-Ansicht als auch eine Design-Ansicht haben. Die Design-Ansicht zeigt ein Preview, in dem die Webseite über Drag-and-Drop-Aktionen angepasst werden kann.
Neben dem Projektmanager enthält die IDE auch einen Data Explorer. Hier sehen Sie die zur Verfügung stehenden Datenbanken. Sie können eine oder mehrere Datenbankverbindungen registrieren, je nachdem was Sie in Ihrer Anwendung benötigen. Aktuell werden MySQL und Firebird unterstützt.
Die Data Explorer Ansicht bietet interessante Drag-and-Drop Funktionen. Wenn Sie einen Tabellennamen in die Design-Ansicht ziehen, so wird eine Datenbankgitterkomponente eingefügt, die die Daten der ausgewählten Tabelle darstellt. Ebenso können Sie einfach ein Tabellenfeld auf die Design-Ansicht ziehen, um ein Steuerelement einzufügen, das dieses Feld auf dem Formular anzeigt oder editierbar macht. So können Sie auf schnelle Weise datengebundene Steuerelemente in ein Formular einbinden.
Alternativ haben Sie die Möglichkeit, Steuerelemente von der Werkzeugpalette zu ziehen und auf Ihrem Formular zu platzieren. In der Werkzeugpalette stehen Ihnen eine Menge unterschiedlicher Typen von Steuerelementen zur Verfügung, die Sie per Drag-and-Drop auf Ihren Formulardesigner holen können.
Die Werkzeugpalette enthält allgemeine Formularsteuerelemente, einige erweiterte AJAX-Steuerelemente, Steuerelemente für den Aufruf von Web Services und für den Datenbankzugriff. Einige dieser Steuerelemente sind Funktionseinheiten, die keine sichtbare Repräsentation auf den aktuellen Web Seiten haben. Dennoch können Sie diese Elemente auf Ihre Formularansicht ziehen und dann per Doppelklick im Objektinspektor ihre Eigenschaften anpassen.
Hinsichtlich der Datenbanktabellen und Felder, die ich oben erwähnte, gibt es noch ein sehr interessantes Detail: Wenn Sie eine solche Komponente aus der Data Explorer Ansicht auf das Formular ziehen, fügt die IDE automatisch die notwendigen Data Source Steuerelemente ein, die den Datenbankgrids, Labels und Editierfeldern die Daten zur Verfügung stellen. Dies spart eine Menge Zeit, die andernfalls für die Erstellung und die Konfiguration eines jeden Data Source Elementes aufgewendet werden müßte.
Nachdem Sie alle erforderlichen Steuerelemente in das Formular eingefügt haben, können Sie Ihre Anwendung testen, indem Sie den Playback-Button in der IDE-Toolbar anklicken. Standardmäßig wird dann der Debugger im Testmodus gestartet.
Die IDE sorgt dafür, dass die aktuelle Skriptseite in Ihrem Browser geöffnet wird. Bevor Sie die Skriptseite starten, können Sie Breakpoints setzen. Dann stopt die IDE die Ausführung an den Breakpoints, so dass Sie Variablen im Meldungsfenster unten im IDE-Fenster kontrollieren können.
Der Debugger arbeitet - wie erwartet - ohne irgendeine manuelle Konfiguration von PHP oder der Debugger Erweiterung und des Web Servers. Obwohl dies eigentlich das Minimum dessen ist, was Sie von einem kommerziellen Tool erwarten können, ist es nach wie vor eine beachtenswertes Detail. Ich habe einige andere PHP IDE Anwendungen getestet und bei einigen von ihnen war es mir nicht möglich, ein Debugging zu aktivieren und ich musste noch manuelle Konfigurationen vornehmen.
Delphi for PHP wird ausgeliefert mit Apache 2.0.52, PHP 5.1.3 und der gängigen DBG Debugger Erweiterung von Dmitri Dmitrienko. Diese Komponenten arbeiten gut zu Testzwecken zusammen. Dennoch konnte ich nicht herausfinden, wie ich eine Applikation auf einem Produktionsserver debuggen kann. Das einzige, was ich in der IDE einstellen konnte, war der Port, auf dem der Webserver läuft.
Wenn Ihr Projekt fertig ist, können Sie Ihre Projektdateien mit Hilfe des mitgelieferten Deployment Tools in ein vorgegebenes Verzeichnis kopieren. Obwohl dies ein nützlicher Anfang ist, bin ich der Meinung, dass es für die meisten Projekte vorteilhafter wäre, wenn auch FTP oder SSH eingesetzt werden könnten, um die Dateien in der Produktionsserverumgebung zu installieren.
Ein weiteres interessantes Tool sorgt für die Internationalisierung von Anwendungen. Es unterstützt Entwickler bei Erstellung von Applikationen, die auf einfache Weise in viele Sprachen übersetzt werden können. Die grundlegende Idee ist eine "gettext"-Erweiterung, um die Anwendungstexte zu extrahieren.
Delphi for PHP erzeugt objektorientierten PHP 5 Code. Obwohl PHP 5 noch nicht sehr häufig eingesetzt wird, mag sich PHP 5 Code für neue Projekt gut eignen.
Der erzeugte Code nutzt VCL, eine Open Source Visual Component Library, die von qadram entwickelt wurde. Durch Erweiterung der VCL-Basisklassen, können Sie neue Komponenten erstellen.
Merkwürdig an der VCL ist ihre tief verschachtelte Klassenhierarchie. Zum Beispiel wurde die Combo Box, auch bekannt als HTML Auswahlliste, durch eine Klasse mit nicht mehr oder weniger als acht Elternklassen implementiert. Vererbung ist eine bedeutende Eigenschaft Objektorientierter Programmierung, aber acht Elternklassen sind aus meiner Sicht unsinnig übertrieben.
Für die Praxis bedeutet das, dass Sie nicht nur mehr Klassen laden müssen, um ein einfaches Formular zu nutzen, sondern es kostet auch eine Menge Speicher und CPU, um ein einfaches Objekt zu laden. Ich habe noch kein einfaches Formular einem Benchmark-Test unterzogen, aber ich befürchte, dies könnte ernste Probleme auf belebten Seiten verursachen.
Eine weiterer für viele Leute interessanter Umstand ist, dass die VCL ADODb Datenbankabstraktionslayer und Smarty als Template Engine nutzt.
Leider war sich die PHP-Gemeinde bisher nie einig, wenn es um die Wahl eines Pakets zur Datenbankabstraktion oder um eine Template Engine geht. Die Wahl dieser Pakete war nicht der Fehler von qadram oder Borland/CodeGear. Sie haben wohl einfach das ausgewählt, was am beliebtesten schien. Aber eine Menge Leute werden mit dieser Wahl unzufrieden sein. Es ist eben unmöglich, sowohl Griechen aus auch Trojaner zufrieden zu stellen. Vielleicht können neue Adapter entwickelt werden, die es ermöglichen, die Auswahl an Paketen variabel zu gestalten.
Für die erste Version dieser PHP IDE, denke ich, hat Borland/CodeGear viel geleistet, aber es bleibt auch noch viel Raum für Verbesserungen.
Wenn Sie ein großer Fan von Delphi für Windows Desktop-Anwendungen sind, werden Sie Delphi for PHP sicherlich lieben.
Auch wenn Sie die Auswahl, die getroffen wurde bezüglich des generierten Codes oder der Bibliothekspakete nicht mögen sollten, so ist Delphi for PHP dennoch sehr nützlich für Entwickler, die schnell einen Prototypen einer PHP-Anwendung erstellen und diesen potentiellen oder aktuellen Kunden zeigen müssen.
German translation of the Delphi for PHP review by Manuel Lemos submitted by Sabine Rothe, Partnermanager at CodeGear from Borland. |