I've been asked to pick a framework for the development of a pretty big project (3 Month or so). PHP is the chosen language, but what framework should we go with? My professor seems to be suggestion CakePHP or codeIgniter.
I've been using CakePHP on an existing project (Cake was already in use) and it does not completely suck. It provides the normal, useful MVC abstractions, an interesting way of integrating non-Cake libraries, and decent updates (on the 1.2.10 release as of last week).<p>Having said that, Cake does not enforce separation of business and display logic like the Django templating language does. Unfortunately, my predecessor took great advantage of this, defeating much of the purpose of MVC.<p>All in all, I like Django better, but CakePHP gets the job done.
Drupal is a great framework and much more. IMHO using something like Drupal is a higher order of development and we should be building with the bigger pieces that such a tool provides rather than having religious wars over languages. Sure language X or Y may be more elegant or faster at building feature A but feature A has been built over and over again. So why not build on top of something that already provides commodity feature A and concentrate on building the unique features?
PHP frameworks are lame. Seriously. PHP is simple enough that you don't need a framework. None of the frameworks are very well maintained. All the frameworks are more trouble than they're worth. Later on, you will end up spending more development time getting away from the framework than you did implementing it.
I've been using Kohana for about a year now, and I'm really liking it.<p><a href="http://kohanaframework.org/" rel="nofollow">http://kohanaframework.org/</a><p>Supports 5.2+ only, nice ORM, and has a cool autoloader system that I really like. Make sure you have an opcode cache in production though :-)