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% -- 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.
Although garnering smaller followings, both Yii and Seagull are also worth exploring if you need to build large-scale Web applications. Yii is particularly well suited for constructing database-backed websites; Yii's command-line tools will generate the source for a CRUD (create, read, update, and delete) interface. Seagull's module system provides prepackaged application components like a guestbook, newslettter, FAQ system, and more -- ready to install and use.
Meanwhile, if you want to get your application off the ground quickly, take a look at CodeIgniter. It requires zero configuration, and installation is as simple as unpacking an archive into your webroot. Although CodeIgniter's feature set is humbler than Zend's, it does provide libraries for such things as image manipulation, email, file uploading, and more. And nothing stops you from beginning an application in CodeIgniter, then attaching Zend packages for additional features as needed.
Finally, CakePHP artfully treads the line between the large and the small. As with CodeIgniter, CakePHP applications require minimal configuration. With an excellent set of automation tools, ease of installation, an online cookbook, and vigorous community support, it's no wonder CakePHP is so well regarded by its users.
PHP smorgasbord Which to choose? If you need a large library of functionality to draw on, then Zend framework and Symfony are good choices. On the other hand, if you want to hit the ground running and get your Web application airborne quickly, you'll probably want to look at CodeIgniter or Qcodo.
Even so, the other frameworks have much to recommend them. CakePHP has a large and devoted community of users. Seagull and Yii provide libraries replete with ready-to-drop-in code. And Lithium's lightweight architecture will be attractive to developers who prefer trim design instead of features they'll never use.
Recommending a single framework as the hands-down choice is simply impossible; there is too much overlap among the frameworks' capabilities. None is clearly superior to the rest. Choose whichever offers features that most closely match your project's requirements, and dive in. You'll get plenty of help along the way.
Compare PHP framework features:
Read the reviews:
- InfoWorld review: Fabulous PHP frameworks
- Fabulous PHP frameworks: CakePHP
- Fabulous PHP frameworks: CodeIgniter
- Fabulous PHP frameworks: Symfony
- Fabulous PHP frameworks: Zend Framework
- Fabulous PHP frameworks: Qcodo, Lithium, Seagull, and Yii
Also on InfoWorld:
This article, "InfoWorld review: Fabulous PHP frameworks," was originally published at InfoWorld.com. Follow the latest news in software development and PHP at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.
- + Easy-to-use command-line tools
- + Excellent documentation
- - Strict naming conventions
- - Fewer extensions than larger frameworks
- + Quick and easy installation
- + Flexible; no "forced" conventions
- - Limited features compared to others
- + Well-established framework in widespread use
- + Extensive feature set
- - Long learning curve
- - Requires understanding of YAML
- +Comprehensive feature set
- + Other frameworks actually recommend using Zend components
- - In danger of feature creep
- - Long learning curve
* Note: Web service support refers to SOAP/WSDL. Most frameworks will support RESTful Web services directly.
Read more about developer world in InfoWorld's Developer World Channel.
This story, "InfoWorld review: Fabulous PHP frameworks" was originally published by InfoWorld.