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 licence 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 plugin 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 plugins 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.

Some redundancies in the Komodo user interface are mildly distracting. For example, if you want to create a PHPUnit test plan, you can do that either from the Tools | Test menu or the Project | Test menu. We're all for flexible user interfaces, but when you see the same selection in two places, you wonder if there is a subtle difference between the choices.

Komodo's code completion works for all the languages you'll deal with in PHP development. Not only does it provide assistance for PHP elements, but for HTML and JavaScript (including embedded JavaScript) as well.

Komodo's debugger configuration wizard helps you get a debugging session started quickly. You can enable the CGI Environment Simulation setting for your project, which creates a sort of web server holodeck that fools the application into thinking it's running in a real web server. You can configure the environment variables and PHP super global variables to make the application see whatever illusory external world you wish. Setting up the CGI Environment Simulation is quick and easy, but there are times when you need to debug the application on an external web server. Komodo supports that as well.

The Komodo IDE is shown here single-stepping through a debugging session. At the bottom, the output window shows the raw HTML generated so far; the Locals window shows the content of in-scope variables.

Debugging JavaScript in Komodo requires that you install a Firefox plugin. Luckily, the plugin installation is automated through a Preferences window selection. While it's possible to debug an application's PHP personality at the same time you're debugging its JavaScript personality, you have to run "multisession" debugging. This amounts to connecting a PHP debugging session in one window and a JavaScript debugging session in another window to the same applications. It's a bit involved, fortunately the documentation gives a good discussion of the setup and execution.

Komodo has no built-in database management system. You'll have to find a separate tool for that. It does provide an HTML inspector, which installs as a browser proxy. Not only does the Inspector track HTTP request/response transactions, but you can use it as a kind of debugger. You can define actions to be performed if a specified condition is met, for example, if the content of a request includes a particular string. Available actions include delaying the transaction by a specified amount of time, manually altering part of the transaction (either the request or response) before passing it along, deleting a portion of the request or response, and so on.

OUR VERDICT

Komodo is a capable IDE that's easy to install and work with. The CGI Simulated Environment is a nice feature, but while local debugging is a snap, debugging a remote application can be tedious to set up. Though we would have wished for an integrated database management system, Komodo is nevertheless an excellent choice if your development requirements go beyond PHP and into one of the other languages supported.