How To: Choose a PHP Framework for Your Next Project
Choose a PHP Framework for Your Next Project
Whats the primary focus of your application? What will your hosting environment be? What are the strengths and weaknesses of the developer(s)?
If you still need to write PHP4 compatible code, CakePHP is a great option. This PHP 4 & 5 MVC framework is one of the oldest and most popular on our list. Cake PHP has built up a reputation as a formidable and capable framework. It also has many avenues for support (groups, message boards, IRC) and excellent tutorials. There are also built-in tools for unit testing, XML-RPC and feed parsing for integration with web services as well as scaffolding for rapid prototyping.
The Zend Framework is for more experienced developers and those building enterprise-level applications. The framework is highly modular, meaning you can use as little or as much of the Zend code as you need. Several libraries can easily be extracted for stand-alone use. There is a lot of built-in support for tasks such as integration with existing web services, localization and extensive unit testing. While the Zend framework may be a large overhead for small projects, if youre building large-scale applications it is typically considered the framework of choice.
CodeIgniter is (as of v2.0) a PHP5.2+ MVC framework with a small footprint and great documentation. CodeIgniter is nonetheless flexible and powerful. The framework has a large community surrounding it, so its fairly easy to find an existing CI library for just about anything you could dream up. CodeIgniter is best suited for content sites and small-to- medium web applications. Youll likely see a performance drop with very large numbers, but there is some built-in caching to help with that.
Symfony is one of the oldest PHP frameworks, and is designed for enterprise-level web applications. For all its power and performance, however, Symfony has a small footprint and is easy to configure on a variety of PHP hosting environments. Symfony uses command line generators for quick project setups and automatic code generation, which allow you to get up and running with your code in very short order. It offers internationalization, URL routing, test suites, a robust templating engine and a powerful plug-in API for extending Symfonys features, or adding your own.
Kohana began as a fork of CodeIgniter, though it’s much more than a simple branch off. Like CI, Kohana strives to be a lightweight, easy-to-use framework that performs well for small-to-medium web applications and custom content management systems. Unlike CodeIgniter, Kohana requires PHP 5.3. The 5.3 requirement also means less code can accomplish some of the same tasks with less concern over backwards comparability.
Yii is a highly modular, high-performance PHP5 framework designed specifically for developing web applications. Yii uses a lot of command line generators and tools to get you up and running quickly; therefore, its best used by people that arent intimidated by a terminal window. Its easy to extend Yii and add in your favorite third-party libraries. Yii also supports templating, themes and widgets, and includes tools for testing, libraries for internationalization and web service integration. The automatic code generation makes it a great framework for rapid development.