Links

PHP Framework

Cake PHP

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. CakePHP is a good framework that's easy to get into but one that you won't outgrow in a couple of weeks.

CakePHP's conventions are fairly strict, however, and it's not the most flexible framework available. This could be a plus if you want to guarantee consistency across the application regardless of the user. 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.


Zend Framework

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. With Zend, you're not tied to the MVC pattern (though it is certainly an option), and there is a lot of built-in support for tasks such as integration with existing web services, localization and extensive unit testing.

Zend requires PHP 5.1.4+ but has multiple configuration options and excellent documentation. It's a framework with corporate backing and a strong community. You'll get long-term stability and fairly quick integration of new features, not to mention security updates tested by a team of professionals. While the Zend framework may be a large overhead for small projects, if you're building large-scale applications it is typically considered the framework of choice.


CodeIgniter

CodeIgniter is (as of v2.0) a PHP5.2+ MVC framework with a small footprint and great documentation. Often called a "beginners" framework because of its relative ease of use and short learning curve, CodeIgniter is nonetheless flexible and powerful. The framework has a large community surrounding it, so it's fairly easy to find an existing CI library for just about anything you could dream up. If you need to do it, chances are, someone out there already has.

CodeIgniter is best suited for content sites and small-to-medium web applications. You'll likely see a performance drop with very large numbers, but there is some built-in caching to help with that. If you're new to PHP frameworks or want something that can be picked up and learned in a few hours, CodeIgniter is one of the top frameworks to consider.


Symfony

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. Since it's been around for so long, you’ll find a lot of tutorials and books available on framework use, a perk for new users.

Symfony uses command line generators for quick project setups and automatic code generation, which may be new to some developers. However, they allow you to get up and running with your code in very short order. If you feel intimidated by this, don't worry. The Symfony's web site has a large collection of tutorials, showcase applications and screencasts to get you going.

The framework has all of the advanced features you'd expect of a system designed for the development of enterprise software. For example, it offers internationalization, URL routing, test suites, a robust templating engine and a powerful plug-in API for extending Symfony's features, or adding your own.


Kohana

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 developers have taken advantage of this by including some advanced functionality not present in Codeigniter. The 5.3 requirement also means less code can accomplish some of the same tasks with less concern over backwards comparability. While Kohana's documentation is a little lacking, it tends to implement features more cleanly. The community is active, so getting help shouldn't be an issue.


Yii

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, it's best used by people that aren't intimidated by a terminal window. All those generators mean more commands to memorize, but once you do, you'll find that they greatly decrease the time it takes to set up and configure your application.

It's 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. Yii's performance is good and the automatic code generation makes it a great framework for rapid development. The framework is well-documented, but since so much of the work is done at the command line, it can be intimidating to some users.