Though precise statistics are difficult to obtain, PHP is undeniably a top choice as a Website building language. Since October 2009, the TIOBE Programming Community Index has PHP holding third place -- behind Java and C -- among programming languages overall. Regardless of the exact extent of PHP's usage, you need only consider that Web sites such as Facebook -- which manages millions of users and petabytes of content -- use PHP; workloads of that magnitude demand a serious programming language and supporting environment.
In our estimation, four of these IDEs rise to the top. Zend Studio is an excellent PHP IDE once you become familiar with the Eclipse landscape. NuSphere's PhpED is also first rate and deserves your consideration if you need a professional-quality IDE and support. If you're on a budget or you can make it without technical support, Eclipse PDT and NetBeans are exceptional tools.
ActiveState's Komodo is not only a PHP IDE, but a multilanguage development environment that can also handle Perl, Ruby, Python, Tcl, and others. In addition, Komodo is OS agnostic; it can run on Windows, Mac OS X, and Linux. Licensing is by user, so a single license allows you to execute the IDE on multiple platforms. We tested the Windows version of Komodo 5.2. You can download a 21-day trial edition from the ActiveState Website.
Komodo installs with support for both the Smarty and Zend PHP frameworks, as well as integration with a number of version control systems (CVS, Subversion, and Perforce) and the distributed versioning systems Mercurial, Bazaar, and Git. It also provides shells for those scriptable languages it supports (and that you have installed). We had Python installed, so we could open a Python shell and hand-execute Python code. Because PHP now has a command-line interface, we had hoped to find a shell for it. We were disappointed -- perhaps in a future release?
The Komodo UI is built on the Mozilla codebase. As a result, the IDE acquires the exceptional plug-in architecture that Firefox enjoys; developers can extend Komodo's capabilities in the same way that Firefox users can extend its features via Firefox .xpi files. Currently, there are more than 50 plug-ins available from the ActiveState Website. In addition, the IDE supports a macro recorder. Turn the recorder on, issue a series of menu selections or keyboard inputs, and stop the recorder -- a macro is created that you can save for later use.
These plug-ins primarily assist in the editor's code completion functions, although the Drupal plug-in gives you a wizard for creating a Drupal Website project. The wizard leads you through a series of query screens -- which version of Drupal, database connection information, theme, and so on -- and builds a skeleton that helps get your Drupal project off the ground.
[ The iPhone wins, and developers lose? See "Software development's winners and losers, 2009 edition." ]
A new user to CodeLobster will instantly notice something missing: a help system. There is "context help," but this appears to work only with code elements. For example, hover over the PHP function mysql_num_rows(), press the F1 key to activate context help, and the online PHP documentation for that function opens in your browser. For real documentation, you have to go spelunking on the CodeLobster Website.
CodeLobster is able to install its debugger automatically, but it needs considerable hand-holding in the process. And here's where the missing help system really hurts. To figure out how to configure your installation for debugging, you have to crawl through the features list on CodeLobster's Web page. There you will learn that you have to fill in a series of parameters in the Preferences window -- including the location of the PHP executable on your machine, where your Web server's virtual folder is, your Web server's host URL, and so on. We found the clearest explanation of the configuration process in the Web site's forums. It took us several attempts to finally get the debugger working.
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.
MPSoftware's phpDesigner 7
MPSoftware's phpDesigner is only available for Windows. This limitation is understandable, given that it is the product of a one-man micro-ISV: Michael Pham, founder, owner, and engineering department for Denmark-based MPSoftware.
A fully functioning 21-day trial version is available for download from the MPSoftware Website. We tested an early release candidate of version 7 of the IDE, and it is an impressive bit of work for a one-person operation.
As for phpDesigner, it's equipped with a wide range of code libraries, including the PHP Web-building framework Smarty and many popular SQL databases. The IDE also includes a built-in server equipped with Xdebug. Although phpDesigner can debug Web applications running on an external server (we used a XAMPP installation), it cannot at this time debug applications running on remote systems.
[ Nine Rails IDEs are leaving the station. Which one should you ride? See "Lab test: Climb aboard Ruby on Rails." ]
The NetBeans IDE interface is a collection of dockable windows, arranged in the familiar "explorers on the left, editors to the right" format. The explorers include a typical project navigator, a file system navigator, and a database explorer. To this trio, NetBeans adds a Web services explorer.
The Web services explorer is prepopulated with nodes corresponding to services from Amazon, Facebook, Google, and other popular sites. You can drill down into a particular service to examine its offered functions and their arguments. Even better: Drag a function from the Web service explorer onto a PHP file in the source editor window, and NetBeans will write the code necessary to call that Web service function.
PhpED, available from NuSphere, runs only on Windows, though NuSphere claims that you can execute the IDE on Mac or Linux using the Wine emulator. We tested the most recent version, 5.9, on a Windows XP system. PhpED comes in standard and professional versions. As you might guess, the latter has more features than the former; the Web site includes a comparison table. Special discounts are available for students, but if you want to try out PhpED, you can download a free 21-day trial version.
The PhpED IDE is equipped with tools peripheral to -- but useful in -- PHP development. These include a DB Client for database management, a Terminals window for managing Telnet or SSH connections, and a NuSOAP window for working with Web services. PhpED also provides its own embedded Web server for executing and debugging applications directly in the IDE, but the documentation states that this is suitable for small applications only. Full-blown Web applications should be debugged on an external Web server; PhpED's debugger, DBG, can work with Apache, IIS, or any Web server that executes a standard PHP runtime.
When you first launch PhpED, it executes a series of tests to verify that its various components are executing properly. For example, it checks that the DBG listener extension is running, locates the current version of PHP, verifies that it is associated with the .php extension, and finds the php.ini configurations file and the extensions directory. It will also ensure that a debug session will execute properly; it does this by issuing single-step and breakpoint operations to the debugger and verifying that they are acknowledged. This is a bit of a godsend, as you can expend a lot of time just configuring a development system.
WaterProof Software's PHPEdit
WaterProof's PHPEdit runs on Windows only; the company says it currently has no plans for Linux or Mac OS X. Though PHPEdit is not an open source IDE, you can download a fully functioning 30-day trial version from WaterProof Software. In addition, free personal licenses are available to students learning PHP (their qualifications must be reviewed by WaterProof), as well as organizations employing the IDE for nonprofit uses. Otherwise, you'll have to purchase a professional license (which start at €89).
In addition to the basic capabilities of project management, intelligent editing, and debugging, PHPEdit includes support for the Symfony MVC (model view controller) PHP framework, the free event-driven Web application framework Prado, and the open source CMS eZ Publish. PHPEdit furnishes all the editing fundamentals: syntax highlighting, Code Insight (code completion), live syntax checking, and code hints. The installed frameworks -- Symfony and Prado -- are recognized by the editing assistance components of the IDE. It's important that you use phpDocumentor syntax to comment your code; that's how Code Insight can -- among other things -- supply information about parameters of user-defined functions.
Opening PHPEdit's help system actually opens an explorer pane. The navigable trees within the explorer include MySQL, PHP, PHPEdit, and Symfony. However, PHPEdit's documentation appears to be a work in progress. Some of the help pages were empty in our version. In addition, English is apparently not the help authors' primary language; the documentation had numerous misspellings and awkward constructions. To be fair, the company is based in France, and odds are their English is better than our French.
Operations of the IDE can be automated via PHPEdit script files. The scripting language is simple, consisting of only "action" operations; there are no control structures. Nevertheless, you can customize the IDE virtually without bound; you can even access the actions behind all the IDE's toolbars and buttons. Unfortunately, while the list of available commands is massive, the help section describing them is incomplete. Some pages were empty; others included brief, one-line descriptions insufficient to deduce the command's characteristics.
Produced in the heart of PHP country, from whence comes the core of the PHP runtime (the Zend engine), Zend Technologies' Zend Studio IDE is part of a collection of PHP-related products that includes Zend Server, Zend Platform, and others. Zend Studio is built atop the Eclipse IDE. In fact, Zend provides an Eclipse plug-in version of Zend Studio, in case you want to enjoy the capabilities of Zend Studio from within a vanilla Eclipse installation. We downloaded and tested the full Zend Studio installation for Windows. A 30-day evaluation version is available from the Zend Website.
When we first executed Zend Studio, it detected that we had not installed Zend Server and recommended that we do so. We downloaded and installed the free community edition of Zend Server. It is built on Apache Server and includes performance enhancements such as PHP byte code acceleration, data caching, pre-installed database drivers, and more. In addition, Zen Server is well integrated with Zend Studio; you can open the Zend Server administration directly from within Zend Studio. Also, when you create a new project in Zend Studio with Zend Server installed, the IDE will automatically set the new project's home directory in its proper location in the Web server's base (htdocs) directory.
When you create a new PHP source file, you can choose from a number of code templates to jump-start the file's content. Many are based on the open source Zend Framework. If you create a Zend Framework-based project (available as a project template), Zend Studio will prepopulate the project with components that support the MVC (model-view-controller) structure of a Zend Framework application and open an outline view that gathers each component into the appropriate category.