InfoWorld review: Eight PHP power tools

FREE

Become An Insider

Sign up now and get free access to hundreds of Insider articles, guides, reviews, interviews, blogs, and other premium content from the best tech brands on the Internet: CIO, CSO, Computerworld, InfoWorld, IT World and Network World Learn more.

Eclipse PDT, NetBeans, NuSphere PhpED, and Zend Studio lead a capable field of IDEs for Web developers

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.

You can't build a world-class Website without a good development environment. In the case of PHP, the development environment must be particularly capable; a PHP programmer will rarely be programming only in PHP. PHP is necessarily entwined with HTML and JavaScript on the front end and with SQL on the back end. Consequently, a good PHP IDE must allow the developer to work with equal ease in multiple languages (both programming and markup) and contexts.

In this article, we examine eight IDEs: ActiveState's Komodo IDE, CodeLobster PHP Edition, Eclipse PHP Development Tools (PDT), MPSoftware's phpDesigner, NetBeans IDE for PHP, NuSphere's PhpED, WaterProof's PHPEdit, and Zend Studio. All of these PHP toolkits offer strong support for the other languages and environments (HTML, CSS, JavaScript, SQL database) that a PHP developer encounters. The key differences we discovered were in the tools they provide (HTML inspector, SQL management system) for various tasks, the quality of their documentation, and general ease-of-use.

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.

[ Don't see the scorecards, screen images, or table? Read the original article at InfoWorld.com. ]

ActiveState Komodo
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?

[ JavaScript, Perl, PHP, Python, Ruby on Rails... Where should programmers place their bets? See "Dynamic programming futures." ]

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.

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.

CodeLobster
The CodeLobster PHP Edition IDE, available from CodeLobster Software, is perhaps the best-named product in this roundup. Registration for the IDE is free, but its half-dozen plug-ins are not. Each plug-in has a different trial period, ranging from one week to 30 days. The plug-ins provide support for the open source Drupal CMS, the JQuery JavaScript library, Joomla, the Smarty PHP framework, WordPress, and the PHP Web application framework CodeIgniter.

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.

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. ]

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.

[ Is Perl, Python, or Ruby best? Do Java or JavaScript count? See "The best open source programming language." ]

Installation of phpDesigner is swift and easy, requiring no additional plug-ins or add-ons. Though phpDesigner is a PHP development tool, it can be used to edit source from a variety of languages, including Python, Ruby, Java, Perl, and others. The IDE offers only syntax highlighting in the additional languages. Active editing assistance (code completion) is available only for PHP, HTML/XHTML, CSS, and JavaScript.

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.

NetBeans IDE
NetBeans is a free, multilanguage IDE available from NetBeans.org. Though NetBeans began life as a Java IDE, versions exist for Python, Ruby, JavaScript, Groovy, C/C++, and PHP. The NetBeans download site offers language-specific bundles, as well as a 300MB-plus kitchen-sink version that installs everything that NetBeans has to offer.

The IDE is Java-based, and it will run on Windows, Mac OS X, Linux, and Solaris. We installed the 6.7.1 version on Windows. NetBeans downloads as a self-installing executable, and the PHP installation includes code editors for PHP, HTML, CSS, and JavaScript. NetBeans PHP is also equipped with explorers for databases and Web services, as well as interfaces into a Hudson continuous integration server and the Bugzilla and JIRA issue trackers.

[ 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.

NuSphere PhpED
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.

[ Debugging a mixture of HTML, CSS, JavaScript, PHP, and SQL requires the right tools. See "Debugging PHP Web apps is hard to do." ]

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.

PhpED has all the expected code assistance features for PHP, including auto-correction of misspelled words and phrases. Code completion, however, is missing for JavaScript. You can view JavaScript in the Code Navigator, which provides a hierarchical view of JavaScript objects, functions, and variables, but this is limited to JavaScript (.js) files and does not work with JavaScript code embedded in a .php or .html file.

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.

[ JavaScript, Perl, PHP, Python, Ruby on Rails... Where should programmers place their bets? See "Dynamic programming futures." ]

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.

Zend Studio
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.

[ 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. ]

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.

Because Zend Studio is built on Eclipse, its editing capabilities are virtually identical to those of Eclipse PDT. Its code completion for HTML, PHP, and JavaScript is pretty much the same as in Eclipse. In addition, all the familiar Eclipse constructs appear in Zend Studio: perspectives, views, and so on.

To continue reading, please begin the free registration process or sign in to your Insider account by entering your email address:
From CIO: 8 Free Online Courses to Grow Your Tech Skills
Join the discussion
Be the first to comment on this article. Our Commenting Policies