{"id":267,"date":"2007-04-22T10:35:14","date_gmt":"2007-04-22T08:35:14","guid":{"rendered":"http:\/\/www.navision-blog.de\/2007\/04\/22\/delphi-for-php-im-test-nie-wieder-borland\/"},"modified":"2022-11-19T13:08:41","modified_gmt":"2022-11-19T13:08:41","slug":"delphi-for-php-im-test-nie-wieder-borland","status":"publish","type":"post","link":"http:\/\/www.navision-blog.de\/blog\/2007\/04\/22\/delphi-for-php-im-test-nie-wieder-borland\/","title":{"rendered":"Delphi for PHP im Test &ndash; Nie wieder Borland"},"content":{"rendered":"<p>Wie bereits <a href=\"http:\/\/www.navision-blog.de\/2007\/03\/13\/delphi-for-php-ab-mrz-erhltlich\/\">berichtet<\/a> hat CodeGear\/Borland eine neue Entwicklungsumgebung f&#252;r PHP heraus gebracht. Da ich fr&#252;her sehr gern mit Delphi gearbeitet habe und eigentlich immer begeistert war, habe ich mir sofort eine Studentenversion f&#252;r 99,- bestellt. Mein Ziel war es bei der Entwicklung meiner beiden WordPress-Plugins <a href=\"http:\/\/www.navision-blog.de\/counterize-ii-english\/\">Counterize II<\/a> und <a href=\"http:\/\/www.navision-blog.de\/category\/rmap\/\">WP-Referencesmap<\/a> etwas mehr Unterst&#252;tzung durch eine IDE und einen Debugger zu erhalten. Gleich vorab: dieses Ziel kann Delphi for PHP leider nicht erf&#252;llen.<\/p>\n<h4>Die Verpackung<\/h4>\n<p>Schon beim &#214;ffnen der Verpackung habe ich mich gewundert. Fr&#252;her gab es bei Delphi immer eine nette Box mit einigen kleinen Beilagen (wie z.B. einem Poster). Diesmal gab es jedoch nur eine einfache DVD-H&#252;lle. Das Cover ist total verpixelt\u00a0&#8211; die meisten privaten Raubkopien werden mit besseren Druckern gedruckt.<\/p>\n<h4>Die Installation<\/h4>\n<p>Die Installation der Delphiversion auf meinem Windows XP Rechner verlief absolut problemlos \u2013 einzig die zwingende Registrierung war etwas\u00a0unangenehm.<\/p>\n<h4>Die ersten Eindr&#252;cke<\/h4>\n<p>Nach dem Starten zeigt sich Delphi for PHP mit einem leeren Formular und gewohnten Tools wie CodeExplorer, Toolbox und\u00a0ObjectInspector. Delphi liefert auch eine gro&#223;e Palette von PHP-Controls in der kostenlos verf&#252;gbaren \u201eVCL for PHP\u201c mit. Diese ist komplett in PHP 5 geschrieben und demnach wohl auch nicht abw&#228;rtskompatibel. Bis hierhin sieht alles ganz normal aus. Delphi\u00a0unterteilt sich in die zwei Ansichten Designer und Code-Ansicht.\u00a0<\/p>\n<h4>Code vs. Designer<\/h4>\n<p>Im Designmodus kann man Komponenten auf seinem Formular platzieren und im ObjektInspektor die Eigenschaften editieren. Delphi legt daf&#252;r im Hintergrund ein XML-File f&#252;r das gesammte Webprojekt\u00a0an, in dem\u00a0alle Eigenschaften der Formularkomponenten (H&#246;he, Breite, Position, &#8230;) gespeichert werden. Zur Laufzeit wird dieses File aufgeparst und die Werte auf die Komponenten gesetzt. Bei meinen Test bekam ich jedoch schon nach ein paar Minuten die ersten Fehlermeldungen im Designer &#8211; dabei wollte ich nur ein TabSheet etwas nach rechts verschieben.<\/p>\n<table>\n<th colspan=2>Passend dazu: Mens Slim Contrast Tee &#8220;Generation beta&#8221;<\/th>\n<tr>\n<td><a href=\"http:\/\/www.spreadshirt.net\/shop.php?sid=200144&amp;article_id=4071461\" title=\"Generation beta\" target=\"_blank\" rel=\"nofollow noopener\"><img src=\"http:\/\/www.spreadshirt.net\/users\/793000\/792189\/products\/792189_4583767_1_medium.jpg\" alt=\"Generation beta\" \/><\/a>\n            <\/td>\n<td>Da heute ja alles eine Beta ist.. &raquo; 17.90 EUR              <br \/>\n              Weitere Produkte gibt es im <a href=\"http:\/\/www.navision-blog.de\/t-shirts-shop\/\" title=\"Navision-Blog Shop\">Shop<\/a>.\n            <\/td>\n<\/tr>\n<\/table>\n<p>Im Code-Editor kann man den PHP-Quellcode editieren. Bei einem Formular legt Delphi auch gleich etwas Quellcode mit an. Syntax-Highlighting und Code-Vervollst&#228;ndigung wird nat&#252;rlich unterst&#252;tzt. Man kann Breakpoints setzen und mit F9 das Programm auf dem Testwebserver starten.<\/p>\n<p>Der Designer arbeitet streng mit der VCL und dem XML-File der Properties. Eigene alte Quelltextfragemente k&#246;nnen nicht visualisiert werden. Somit kann ich den visuellen Designer nur f&#252;r neue Projekte verwenden bzw. ich m&#252;sste meinen gesammten Code in VCL-Komponenten portieren.<\/p>\n<h4>Remote-Debugging<\/h4>\n<p>Nun wollte ich gleich richtig einsteigen, aber zu meinem Bedauern kann Delphi for PHP kein Remote-Debugging \u2013 was &#252;brigens nirgends auf der CodeGear-Seite oder in der sehr knappen Hilfe beschrieben ist. An dieser Stelle brach f&#252;r mich eine Welt zusammen. Delphi liefert zwar standardm&#228;&#223;ig einen Entwicklungswebserver mit, &#228;hnlich wie die Cassini-Version bei ASP.NET, aber Remote-Debugging wird (zur Zeit) nicht unterst&#252;tzt. Schlimmer noch &#8211; der Assistent zum Exportieren des Webprojekts exportiert zwar neben dem eigenen Code nur den tats&#228;chlich benutzten Teil der VCL, bietet jedoch keine M&#246;glichkeit des FTP-Uploads. Ich meine selbst mit meinen <a href=\"http:\/\/www.pspad.com\/de\/\">PsPad<\/a>\u00a0kann ich Quelltexte remote editieren.<\/p>\n<p>Somit m&#252;sste ich meinen gesamten WordPress-Blog (samt\u00a0mySQL-Datenbank)\u00a0nochmal auf meinem lokalen Entwicklungs-Rechner spiegeln und &#196;nderungen manuell mit meinem FTP-Programm hochladen. Team-Entwicklung f&#228;llt damit wohl auch flach.<\/p>\n<h4>Datenbank-Anbindung<\/h4>\n<p>CodeGear liefert standardm&#228;&#223;ig neben dem Entwicklungsserver noch eine Testversion von InterBase mit. Diese kann man f&#252;r eigene Testzwecke nutzen &#8211; vor dem Deployment muss InterBase jedoch lizensiert werden. Was soll das denn? Da liefern die eine Datenbank mit und dann darf ich die nicht benutzen? Mal davon abgesehen, dass nat&#252;rlich mySQL der eigentliche PHP-Partner ist.<\/p>\n<h4>Fazit<\/h4>\n<p>Delphi for PHP\u00a0hat sich\u00a0f&#252;r mich leider als absoluter Fehlkauf erwiesen. CodeGear\/Borland hat einfach von der Firma qadram das Qstudio genommen und einen sch&#246;nen Delphi-Sticker draufgeklebt. Ich habe mich von dem guten Namen und der M&#246;glichkeit PHP in einer IDE zu nutzen blenden lassen.\u00a0Dabei ist der Designer noch nicht komplett bugfrei, Remote Debuging wird nicht unterst&#252;tzt,\u00a0die\u00a0Hilfe ist sehr sehr kurz\u00a0und die Sache mit InterBase ist wirklich eine Frechheit. F&#252;r mich hat Borland hier alle Sympathien verspielt. Das Programm ist noch lange nicht marktreif und den Namen Delphi hat es schon gar nicht verdient.<\/p>\n<p>Nachdem ich mich ja schon eine ganze Zeit lang mit ASP.NET und Visual Studio besch&#228;ftigt habe, muss ich sagen: Das ist ein Unterschied wie Tag und Nacht. F&#252;r mich stellt sich nun die Frage: Wie bekomme ich mein Geld zur&#252;ck &#8211; Software ist ja leider vom Umtausch ausgeschlossen.<\/p>\n<p>Jetzt werde ich mir also doch die Eclipse-PHP-Versionen (wie z.B. <a href=\"http:\/\/sourceforge.net\/projects\/phpeclipse\/\">PHPEclipse<\/a>) ansehen m&#252;ssen&#8230;<\/p>\n<div style=\"font-size:0px;\"><a href=\"https:\/\/ed-ljekarna.com\">https:\/\/ed-ljekarna.com<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wie bereits berichtet hat CodeGear\/Borland eine neue Entwicklungsumgebung f&#252;r PHP heraus gebracht. Da ich fr&#252;her sehr gern mit Delphi gearbeitet habe und eigentlich immer begeistert war, habe ich mir sofort eine Studentenversion f&#252;r 99,- bestellt. Mein Ziel war es bei der Entwicklung meiner beiden WordPress-Plugins Counterize II und WP-Referencesmap etwas mehr Unterst&#252;tzung durch eine IDE [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11,29,3],"tags":[640,122,248,123,121,656,633],"_links":{"self":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/267"}],"collection":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/comments?post=267"}],"version-history":[{"count":1,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/267\/revisions"}],"predecessor-version":[{"id":2016,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/267\/revisions\/2016"}],"wp:attachment":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/media?parent=267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/categories?post=267"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/tags?post=267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}