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 trends.builtwith.com site places PHP's Web-wide use at approximately 35 percent -- first among Web development languages and platforms.
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.
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.