I believe that you as a web developer who are using PHP for a server data processing are familiar with at least one PHP framework. During the last seven years number of frameworks has grown rapidly. Although there are so many frameworks available, there is only quite few of them which is really popular and among which you choose one to work with. But, real question is, which will you choose?
Big shoots in this race are Zend Framework, Codeigniter, Symfony, Yii, CakePHP, Kohana, there is probably some more that is worth to mention here, but those are the major ones. All of this PHP Frameworks are working on pretty same design pattern, they all using MVC (Model View Controller) architecture, but beside MVC in theirs classes we can find some other design patterns like Factory, Singleton and more.
So, what are the differences between those frameworks? There is a couple of major things, time of spending to learn framework, number of ready to use classes and services, speed of loading pages, community, documentation, size … Each of above mentioned framework has something which declare it among PHP users. For example, for Zend Framework programmers often said that is complicate to learn, big learning curve, slow (faster in new 2.0 version), not a real framework but a complex set of classes, Codeigniter is good for people who starting with PHP frameworks, it if fast, a lot smaller then Zend, even 10 times, Yii framework as they declare it “Best for Web 2.0 development“, fast, secure, Symfony complex framework for large applications, not quite for framework starters, CakePHP best name convention framework, etc.
I have try most on those frameworks in various web applications, and what is interesting part, every time i have tried some framework i said to my self, “Wow, this is the best framework!”. That was interesting… That was the case with Codeigniter, CakePHP, later Yii and finally Zend.
Then what is the truth, what framework is the best?
Answer is very simple, they are all the best, depends what you need, what you like and most important what you are used to work on . If you are developing large, stable application in modular manner, you may consider Zend or Symfony, if you need fast modern Web 2.0 application try with Yii, but most important, choose framework you thing it will suit you best. It is also important that you try a couple of them, just to know what should you expect.
Try, experiment, see which of them makes you most conformable to work with. Write to us, share your experience , tell us why you think “your framework” is the best.