PHP IDEs I- PHP Eclipse
Home Tutorials Reviews Weblog

Review: PHP IDE-Integrated Development Environs I
Feature: PHP IDEs have been quick to emerge led by Zend, but slow to completely bloom
Zend is the creative force and developers behind PHP. And so it should be no surprise that Zend has also led the way on delivering an IDE into the world of PHP. Now realize what an intimidating task this is. The PHP IDE is really at least 3 IDEs rolled into one. Because PHP is used intimately with HTML and JavaScript as well as PHP, the editor at the very least has to be aware of and distinguish the three different languages with their sets of keywords and basic syntactical constructs. Equally challenging is the debugger that must be able to do remote and client side step through symbolic debugging. As well marshalling all the rich libraries and 3rd party PHP resources and growing number of functions and components is complicated by the fact that there is a pre-and post OO-Object Oriented legacy of routines. Finally, developing a a drag and drop Visual Layout and/or template generation system is made more challenging by the huge 3rd party library of routines and components available.

In sum building an IDE for PHP is a very challenging task. As proof one only has to look at the tools available for ASP and JSP from Microsoft and a legion of Java developers. For a long time ASP's many syntactical changes has benefited from a Visual Studio based IDE with basic drag and drop Visual Layout and a simple debugging capability. Ditto for JSP although JSP's rich set of tag libraries and JSF components have only recently emerged with products like BEA's WebLogic Workbench, IBM's WebSphere App Developer, Oracle's JDeveloper or Sun's NetBeans.

The payoffs of a PHP IDE are diverse and listed in the table. The table below highlights in green where features are fully supported and in yellow where there is at least partial support. Lets see how a PHP IDE meet these features.
   
PHP Eclipse Support of Key PHP IDE Features
IDE Feature
Payoff
Editor - code completion and syntax coloring faster development, fewer coding errors
Editor - auto line-numbering, code collapsing ease of finding returned error codes in testing
Editor - class, function tree faster code navigation, and code checking
Editor - code snippets and templates faster, safer code development using tested code
Editor - built-in database explorer able to confirm and set database properties quickly
Debugger - step through source code track down bugs more completely and quickly
Debugger - user breakpoints and watches see variables at the suspected "scene of the crime"
Debugger - assign a variable a new value prolong getting useful results from debug session
Debugger - server-side as well as client-side support prevent black-hole doubts where error is occurring
Visual Layout - use of drag and drop components better prototyping of apps look and feel
Visual Layout - alignment, spacing, sizing options faster fixes for many styling changes
Visual Layout - properties table for widget attributes
more precise control of customizations
Visual Layout - multiple layout and boundary conditions what happens on resizing of widget or whole window
Visual Layout - database, Web Service aware widgets dialog-based customization of tricky coding
Scripting - variables and if conditions simple replacement templates, customize rote tasks
Scripting - loops and file reads advanced template-driven code generation, testing
Team - check, in checkout basic safety net of concurrency control
Team - collaboration, shared task list, messaging crucial for dispersed development teams

Eclipse PHP IDE

PHP has come to Eclipse or vice versa with a free IDE that sets a fairly high bar on what to expect from your friendly PHP tool. As can be seen in the screenshot, the basic Eclipse editing environ can be exploited to provide some solid PHP editing capabilities including code completion and code coloring which this reviewer finds very valuable. But equally important is auto-line numbering, for quick correction of compile errors.

On the downside I still can't figure how to find balancing braces and parentheses in the editor. The debugger is slow and clumsy , and there is no Visual Layout of reports, forms and web pages whatsoever. So like some big PHP names such as ActiveState Komodo 4, Adobe Dreamweaver CS3, and Zend Studio, PHP Eclipse improves on these tools but has some major gaps in its functionality.

However, those gaps are partially filled by the wealth of plugin available for Eclipse in general. For example there is a Database Explorer plugin that allows users to open JDBC-based databases and view tables, schema and views as well as do SQL queries. Likewise there is a Koders Eclipse plugin that is a must have for shops that want to reduce there coding time with good Open Source frameworks and APIs. If the PHP is available, Koders will find it. The Enterprise version will search your site (and any other designated sites) for possible code usage by class, function/method, or variable name. Koders at the very least can provide template and test code so you will know how to at least approach the problem.

Two Eclipse Advantages

PHP Eclipse uses the Zend debugger. This debugger provides fairly robust capabilities on a local http server. Apache is easiest to install and use but others like IBM Websphere will work. The debuging allows for breakpoints, watches, and step-in/stepover line by line debugging. But I found the Zend debugger to be clumsy on setup and sometimes ponderously slow; hence its yellow caution rating in the table above. I am surprised that PHP Eclipse does not include the robust XDebug package as NetBeans is doing for its PHP IDE.

Another advantage of the PHP Eclipse IDE is that it is completely programmable. All the Java code is available (Open Source) and there are very useful exercises and tutorials on how to program the IDE. It is not simple but approachable by a skilled team of OO or Java developers. That is one reason why there is a fairly robust set of 3rd party extensions and plugins for Eclipse. For example, users can find extensions for Web Services, UML or ERD modeling that can be very useful in the PHP context.

PHP Eclipse also has easily installed plugins as well forDatabase Development, Cold Fusion -CFEclipse and JavaScript-JSEclipse so one can build up a complete Web development IDE - short on Visual Layout but long on editing and bringing database and XML processing support to your Web development. In short, this is the real advantage of PHP Eclipse, you get a path to potentially much better support for the language then is available from most PHP vendors because of the plugin wealth that is available through Eclipse.

Summary

In its very first edition, Eclipse takes PHP up to the same level as say Activstate's Komodo, Adobe's Dreamweaver CS2 or even Zend's PHP Studio. It still leaves full Visual Layout and fast/efficient debugging support to do; but the rich Eclipse development environ is a big plus.

In our next installment I shall look at PHP IDEs that go beyond the editing and limited debugging and form layout capabilities of PHP Eclipse and add value in various ways including nifty editing features, and starts toward template or Visual Layout. Also see this IBM review of 7 PHP IDEs from last year, which is fairly informative.

Top of Page  Home  Tutorials  Developers Weblog  Graphics Reviews and Tips