Since no one has voted for Symfony here, I will and why. There are two types of frameworks, well, the whole range, but in the area of PHP / MVC, where we are in this thread, there are Glue and Full Stack frames.
Zend and CodeIgniter are glue, and Symfony and Cake are FullStack.
Glues are those where you can choose which components you can use and how much “standard” code you can use. They usually have a softer learning curve, since you can choose the bit you like and fill the more complex bits with the code that you know.
FullStack means you need to use the lot, and so the learning curve can be pretty steep. In addition, with FullStack, there may be a tendency to prevent something from being realized, rather than just accepting and flowing with it.
Based on the fact that I wrote everything against my background, I first preferred glue, but now I switched to FullStack using Symfony 1.4 and 2 and Sinatra and Padrino. The extra speed and power that full bets give is not what I would like to give.
One drawback of CI is that it is designed to be compatible with php4 and thus suffers in several structural ways, when you come to promote the framework, Kohana is a fork that solves this problem. And I don't like Zend, because there are so many ways to do the same thing, that after a while the Framework seems almost irrelevant (sorry personal interrogation)
At the end of the day, using the Framework is good because it adds structure and can be a big help for learning, and the one you need to choose is the one that is convenient and productive for you.
Purple pilot
source share