approach and learnings
It seems that there are a handful of standard php frameworks, but for the most part each php web site/application 'appears' to develop their own (either from scratch or using an open source framework and building from that). The php frameworks available range from base templates/common code to full fledged systems based on common development theories and practices, such as:
MCV - http://en.wikipedia.org/wiki/Model_View_Controller
scaffolding - http://en.wikipedia.org/wiki/Scaffold_%28programming%29
URL mapping - mapping specific pages to a directory
security - build in security modules
Here are some usefull links regarding php frameworks:
All the frameworks appear to be open source, some ask for donations and one (Zend) is tied to a commercial IDE.
Most of the php framework comparison work was already done here:http://www.phpit.net/article/ten-different-php-frameworks/
In addition to the comparison and reviews, I would add:
- recent'cy - how recent has the project been updated - some open source projects go stale - no updates and the people supporting move on to another open source project
- use by others - the proof is in the pudding (as someone said once) - check the sites developed with the frameworks and see if they are in line with what is needed
- documentation/examples - make sure it's there and is useful
- forums - check how recent they have been used and who from the framework team is supporting them (is it a team of one?)
- directly tied to a IDE - even though it would be nice to have a built-in or easy to integrate IDE....I'd prefer not to have the framework tied to a commercial IDE (Zend), since I don't want to pay for anything (free is good)
After reviewing the various articles I could find regarding frameworks, how other large applications approached this choice (seems most selected to build their own - possibly based on an existing one), reviewing the web sites developed by the frame works, etc. - I narrowed the selection to 2:
CakePHP - seems to be more widely used (even IBM is using it)
SeaGull - the admin support is very CMS like....
When it comes down to it, it's a base perception call. I'm sure out of the top 5 (add Symphony, ZEND and Prado) - all would work well...what moved me to Seagull and CakePHP were their sites, the sites developed by the products and the reviews. Right now I'm perceiving CakePHP to be the best for me.