InfoWorld review: Eight PHP power tools
Eclipse PDT, NetBeans, NuSphere PhpED, and Zend Studio lead a capable field of IDEs for Web developers
Eclipse PDT
There are numerous IDEs based on Eclipse, and countless programming language projects have been crafted in Eclipse IDEs. For PHP development, the Eclipse PDT (PHP Development Tools) project is the place to visit.
Eclipse PDT was developed jointly by IBM and Zend, though contributors come from beyond those two organizations. Recently, Aptana (whose Aptana Studio supports PHP) has begun substantial contributions to the PDT project.
Eclipse PDT is available for Windows, Linux, and Mac OS X. Windows and Mac OS X versions can be had in 32-bit or 64-bit variants. At the time of this writing, the latest release was version 2.1.2.
We tested the Windows version of PDT, an "all in one" installation that bundles every plug-in you need for PHP development and then some. This includes the Data Tools Platform for managing databases, as well as plug-ins for JavaScript development, Web development tools, XML editors, and more. Eclipse PDT also includes the Zend debugger, though you can use Xdebug as well. Of course, if the pre-installed features aren't enough, you can install any useful plug-in from the vast spectrum of Eclipse development tools.
[ Eclipse is a winner of InfoWorld's 2010 Technology of the Year Award, which recognizes the year's best hardware and software. Take a slideshow tour of all 20 winners. ]
The Eclipse paradigm consists of the related concepts of perspective and view. In its simplest form, a view is an editor into work space information (a PHP code editor is a kind of view). A perspective is a collection of views organized toward some purpose, so you open the PHP perspective to edit the files in your PHP project. When it's time to debug your application, you open a debug perspective.
Eclipse's coding assistance is excellent. Aside from the basics (such as syntax highlighting), Code Assist will watch as you type and conjure a pop-up to suggest possibilities for completing a partial code element. These features apply to HTML and JavaScript, as well as PHP. Note that for JavaScript Code Assist to work, you have to enable JavaScript for your project -- a separate step that I missed the first couple of times.
As with any multilanguage IDE, Eclipse PDT's documentation can be daunting, and it only gets worse as you add plug-ins. You can't blame that on the IDE, though. On the plus side, all the documentation is available in a single, searchable interface.
While Eclipse can support both the Xdebug and Zend debuggers, the two are not compatible -- only one can be enabled for a given instance of the PHP runtime. Therefore, unless you want to be repeatedly modifying project configurations, you should pick one debugger and stick with that. We chose the Zend debugger.
Views in the debug perspective include a window into the PHP source file. Hover over a variable, and its current value appears in a pop-up. If the variable is an object, the pop-up will announce the parent class. A separate window shows variables in scope, and if a variable is an array or object you can open a tree into its internals. A debug output window shows the raw HTML issued by the running program.
Because PDT is Eclipse-based, you can load this IDE with more development tools than you could possibly know what to do with. While some tools may never be needed in PHP development, others could be useful. The Remote Systems Explorer plug-in, for example, provides tools for transferring files to and from remote computers, which do not have to be running the same OS as your development platform. This is particularly handy for copying files between development and deployment machines, or verifying that directory structures are properly organized on the runtime Web server.
Eclipse is probably as close to a do-it-all IDE as it gets. The growing number of spin-off IDEs that point to Eclipse as their fountainhead is a testament to Eclipse's capability. What's best about Eclipse, of course, is its vast supply of plug-ins. You can bedeck Eclipse with attachments that turn it into your one-room workshop for PHP development.