I am about to begin development of a new website and have been doing research on PHP Frameworks. I’m not an advanced PHP developer, but I have been developing web sites and apps (in asp.net) for a few years now.
My website will primarily be AJAX-based (using jQuery) and making lots of calls to web services. After some research, here’s what I came up with:
CakePHP: Originally started developing in this, but found it too complex. The fact that it forces you to use and learn all this new stuff just to use it was a bit daunting, so I put it aside for the time being.
Zend: The performance of the framework leaves me a bit skeptical, but I heard it has great support for creating web services. I also heard it was a bit complex.
CodeIgniter: No real reason for not using this one. Based on what I’ve read CodeIgniter and Yii are very similar, but Yii is a bit faster and doesn’t have un-needed code for PHP4 (since I plan on developing exclusively in PHP5).
As far as Yii, the only things that scare me about it are that it is newer than the other frameworks so it has a smaller community. It also doesn’t seem to have a ton of web service support (only SOAP, from my understanding) as opposed to Zend.
So my questions come down to:
- Should these things worry me? (not as big of a community, poor web service support)
- Is there anything else I should look into?
- Is my choice of Yii over the other frameworks ok for a primarily AJAX-based web app?
Bara
You need to document the requirements of your project and the reasons behind why a framework is even required in the first place. Then look at the future of the site and associated functionality. Then choose the framework that provides the strongest functionality to satisfy those requirements. Don’t get hung up on opinions. Read the documentation and identify the components you want to use, narrow your search from there and then experiment with them all.
Performing your due diligence will pay off not only for you, but for your client who is paying the bills.
To sum up:
Edit/Opinion Additions:
If this is merely a personal growth project, then I would look at using what’s going to look the best on your resume. Zend has the biggest name and a solid product, so they win by default because it’s the old “can’t get fired for IBM argument.” Some big players are using Symphony, but it’s a big learning curve. Yii, Cake, Kohana all have pros and cons and are great in their own way.