PHP Classes
elePHPant
Icontem

Delphi for PHP 2007

Recommend this page to a friend!

  Latest classes All reviews   Delphi for PHP 2007   Latest classes Latest reviews   Best sellers ranking Best sellers ranking  

Title

Delphi for PHP 2007

Category

Development tools

Publisher

Borland, CodeGear

Release date

March 20, 2007

Sales ranking

Week: Not ranked All time: 4

Reviews

April 3, 2007
  Post a comment Post a comment   See comments See comments (7)   Find where to Buy Now Find where to Buy Now  

Manuel Lemos
manuellemos.net
It was a pleasant surprise that I got when I received the news that Borland/CodeGear were launching an IDE product for PHP development. My surprise was not so much because of the product itself, but rather because of what this means to the PHP market and the PHP community.

We all know that PHP is undoubtedly the most popular language for Web development. But when I see reputed companies like Borland embracing the PHP market, following the steps of industry giants such as IBM and Microsoft, this means a lot for the present and the future of PHP adoption, especially in the corporate world.

But lets bring back the scope of this review to the product: Delphi for PHP. First I would like to clarify that I am not Delphi user, nor a desktop application developer, actually not even a Windows user. So I will try to do my best to put myself in shoes of a PHP developer that is looking for Rapid Application Development (RAD) tools that can run under Windows.

My first impression is that the scope of this application is huge. I am sure that this review will not do justice to the extension of the capabilities of this PHP IDE. So I will try to mention just what I think that most people looking for tools like this would like to know.

Despite the name Delphi for PHP, this is not exactly a new project. It is a PHP IDE based on qadram qstudio.

The user interface is pretty standard for this kind of IDE. There is the project manager view that exhibits the different components that are being designed by the application developer.

Applications may have units and forms, like in the regular Delphi or Visual Basic IDE for desktop applications. Units are actual PHP scripts. Forms represent an application perspective that can be viewed in Web pages. So forms are also PHP scripts. The difference is that forms have either a code view and a design view that shows a preview of what the page will display editable using drag and drop actions.

Besides the project manager view, there is also the data explorer view. Here you only see the available databases. You can register one or more database connections that you may need in your application. Currently, only MySQL and Firebird are supported.

The data explorer view provides interesting drag and drop features. If you drag a table name in the design view, it pastes a database grid component to present data from the selected table. Similarly, you can drag just a table field in the design view to paste a control to display or edit that field in the form. This is a rapid way to add data binding controls to a form.

Alternatively you can also drag and drop controls from the tool pallete. There are many types of controls available for drag an drop from the tool pallete into the form design view.

The tool pallete includes the common form controls, some AJAX enhanced controls, Web services invocation controls, and database access controls. Some of these controls do not really represent an entity that has a visible representation in the actual Web pages. However you can still drag these controls into the form view, so you can double click on them to configure their properties in the object inspector view.

One interesting detail about the database tables and fields mentioned above, is that when you drag them from the data explorer view to a form, the IDE automatically pastes the necessary data source controls from which the data is accessed to integrate with the database grid, labels and edit fields. This saves a lot of time that otherwise would be spent creating and configuring each of these data source controls.

Once you have added all the necessary controls to the form design view, you can test your application using the playback button in the IDE toolbar. By default the debugger is started in the test mode.

The IDE makes the current script page be opened in your browser. You can set breakpoints before running the current script page, and the IDE stops when the breakpoints are set, so you can inspect variables in the messages view at the bottom of the IDE window.

Debugging works as expected without any manual configuration of PHP, or the debugger extension and the Web server. Although this the minimum that you can expect from a commercial tool, this is still a noteworthy detail. The matter is that I have tried several other PHP IDE applications, and in some of them I was not able to make debugging work, or I still had to perform manual configuration.

Delphi for PHP comes with Apache 2.0.52, PHP 5.1.3 and the popular DBG debugger extension by Dmitri Dmitrienko. These components work well integrated for testing purposes. However, I could not find how to debug an application on a production server. The only detail that I could configure from the IDE is the port on which the Web server is running.

Once your project is ready to be deployed, you can use the deployment tool to copy all the project files to a given directory. Although this is useful as a first step, I think for most projects it would be better if it would also use FTP or SSH to install the files in a production server environment.

There is also another interesting tool for internationalizing applications. It helps users generating applications that can be easily translated to many idioms. The idea is to use gettext extension to get the application texts.

Delphi for PHP generates PHP 5 object oriented code. Although PHP 5 has not yet seen great adoption, PHP 5 code may be fine for new projects.

The generated code uses VCL, an Open Source Visual Component Library developed also by qadram. You can develop new components by extending base VCL classes.

One odd thing about VCL is its deeply nested class hierarchy. For instance, a simple combo box, also known as HTML form select input, is implemented by a class with no more, no less than 8 parent classes. Inheritance is a great characteristic of object oriented programming, but 8 parent classes is absurdly exaggerated.

In practice this means that not only you need to load more classes to use a simple form, but it also consumes a lot of memory and CPU just to load a simple object. I have not benchmarked a simple form, but I am afraid this may cause serious scalability problems to busy sites.

Another detail that many people want to know about is that VCL uses ADODb database abstraction layer and Smarty as template engine.

Unfortunately, the PHP community was never consensual when it comes to choosing a database abstraction package or a template engine. The choice of these packages was not a fault of qadram or Borland/CodeGear. It seems they picked what seemed more popular. But a lot of people will be displeased by these choices. It is impossible to please Greeks and Trojans. Maybe new adapters can be developed to replace these package choices by others that some users may prefer.

For a first version of this PHP IDE, I think Borland/CodeGear did very well, but there is plenty of room for improvement.

If you have been a big fan of Delphi for Windows desktop applications, you will certainly love Delphi for PHP.

Even if you dislike the choices that were made when it comes to the generated code or then library packages, Delphi for PHP may still be very useful for developers than need to quickly create a prototype of a PHP application and show how it looks to potential or current customers.
  Post a comment Post a comment   See comments See comments (7)   Find where to Buy Now Find where to Buy Now  

Comments

4. Disappointed - Beier, Uwe (2007-05-30 17:27)
Delphi for PHP disappointed me... - 0 replies
Read the whole comment and replies

3. Some points - Jose Leon Serna (2007-04-10 15:25)
Just some points to add to the review... - 2 replies
Read the whole comment and replies

2. Pros and Cons - Clive Wickham (2007-04-04 19:02)
First thoughts regarding Delphi for PHP... - 1 reply
Read the whole comment and replies

1. Delphi for PHP 2007 - Mark (2007-04-04 17:32)
Timely and helpful review... - 0 replies
Read the whole comment and replies

Post a comment

May 9, 2007
  Post a comment Post a comment   See comments See comments   Find where to Buy Now Find where to Buy Now  
  Post a comment Post a comment   See comments See comments   Find where to Buy Now Find where to Buy Now  

Comments

No comments were submitted yet.

Post a comment

May 16, 2007
  Post a comment Post a comment   See comments See comments   Find where to Buy Now Find where to Buy Now  
  Post a comment Post a comment   See comments See comments   Find where to Buy Now Find where to Buy Now  

Comments

No comments were submitted yet.

Post a comment

Trackbacks

2. CodeGear | Delphi for PHP - promising IDE for PHP development (2007-04-14 00:38)
I've just discovered the product Delphi for PHP and it looks very promising...

1. PHPClasses.org: Review - Delphi for PHP 2.0 (2008-07-23 12:16)