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 organisations. 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.
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 organised 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.
As with any multilanguage IDE, Eclipse PDT's documentation can be daunting, and it only gets worse as you add plugins. 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.
The debug perspective of Eclipse PDT, showing the real-time variables view and raw HTML output.
Views in the debug perspective include a window into the PHP source file. Hover over a variable, and its current value appears in a popup. If the variable is an object, the popup 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 plugin, 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 organised 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 plugins. You can bedeck Eclipse with attachments that turn it into your one-room workshop for PHP development.