InfoWorld review: Fabulous PHP frameworks

Zend Framework, Symfony, CodeIgniter, CakePHP, and other PHP frameworks conquer Web development with extensive features, powerful tools, and superior ease

The website development world is not ruled exclusively by PHP, but PHP's extensive use as a Web development language is undeniable. Although good statistics are difficult to come by, the site places PHP's Web-wide use at approximately 35 percent -- first among Web development languages and platforms.

Consequently, it would be reasonable for a developer embarking on a new website construction project to select PHP as the site's primary building material. It would not be reasonable, however, for that developer to assemble the project from scratch. A PHP-based website usually requires more than PHP code. There's HTML for the page layout, CSS for its style, SQL for its back-end database, and JavaScript for client-side responsiveness. That's quite a fray to jump into unarmed.

[ Also on InfoWorld: See InfoWorld's review on eight PHP power tools | Follow the latest issues in software development with InfoWorld's Developer World newsletter. ]

Happily, you can arm yourself with one of the PHP-based Web development frameworks covered in this article. In the following pages, I'll look closely at the Zend Framework, CodeIgniter, CakePHP, and Symfony. I'll also give quick overviews of Qcodo, Lithium, Seagull, and Yii. All are open source frameworks, and all implement to one degree or another the MVC (model view controller) architecture pattern. In addition, all purport to help you build a more scalable and more easily maintainable Web application than you could otherwise create from scratch and, most importantly, do so in less time.

Meet the frameworks
The principal goal of these PHP frameworks is to accelerate the construction of Web applications. But some claim abilities beyond Web development. For example, you can use the Seagull framework to build command-line and GUI applications as well as Web applications. Although all the frameworks support the MVC design pattern, not all lock you into it. CodeIgniter's documentation, for example, states explicitly that applications may, if need be, employ only that framework's controller components.

Support for JavaScript and AJAX varies. Qcodo integrates JavaScript almost seamlessly; a single alteration to a control's action-handler method in Qcodo will change that control from being PHP-based to AJAX-based. Most other frameworks provide support for popular JavaScript libraries such as jQuery and Dojo. Lithium's JavaScript support is minimal; rather than support JavaScript directly, Lithium provides conversion of requests/responses to JSON (JavaScript Object Notation) for easy JavaScript manipulation.

Zend and Symfony are feature-rich frameworks brimming with packages covering a variety of technologies. For example, Zend's Zend_SOAP and Zend_XMLRPC packages encapsulate just about everything you need to build RPC-style SOAP server and client applications. Both Zend and Symfony, however, demand significant learning time as compared to the other frameworks reviewed here. In particular, learning Symfony requires learning YAML (Yet Another Markup Language), which Symfony employs extensively for configuration and data description.

InfoWorld Scorecard
Ease of development (25.0%)
Installation (10.0%)
Capability (40.0%)
Documentation (25.0%)
Overall Score (100%)
CakePHP 1.2.9 9.0 9.0 9.0 8.0 8.8
CodeIgniter 1.7.3 9.0 9.0 8.0 8.0 8.4
Symfony 1.4.8 7.0 9.0 9.0 9.0 8.5
Zend Framework 1.11.2 7.0 8.0 9.0 9.0 8.4
1 2 3 4 Page 1
Page 1 of 4