Okay, this thread is probably going further complicate things but I'd like to start a discussion on the various PHP Frameworks and their pros and cons. I've just started researching various frameworks and I've found more than I could possibly play with so I'd like to know who has played with each and what their candid thoughts were. Here's a list of the ones I've found and some general notes:
http://www.phpontrax.com/
http://www.mojavi.org/
http://www.fusebox.org/ -- procedural, uses CF and PHP, totally open source
http://xisc.com/ -- aka prado, OO (won php 5 zend contest)
http://formvista.com/ -- doesn't seem to be released yet
http://blueshoes.org/ -- license fee for commercial use, several packages already written, many big names as clients, CMS component
http://cakephp.org/
http://phpmvc.net/ -- OO, based on jakarta struts
http://www.thinkcomputer.com/software/lampshade/free.html -- lampshade (license fee for commercial use)
http://seagull.phpkitchen.com/
http://phpyawp.com/yawiki/ -- self-professed "not really a framework"
http://www.smart3.org/ -- not strictly MVC
http://www.symfony-project.com
A couple other notes:
Ruby on Rails is not included because it uses the Ruby language not PHP. I've heard good things but at the end of the day I want the fastest most scalable language so I choose PHP over Rails (as I've heard PHP is simply faster than Ruby).
I realize that frameworks in general cause a little bloat but I believe that there is atleast one good framework that adds minimal bloat/processing time and still significantly decreases prototyping time. I plan on having a small team of developers so frameworks offer a lot in the sense of organized collaborative development.
I don't include PEAR because PEAR is more a kickass function library/extension rather than a formal framework.
MVC (model view controller): is it inherent in every good framework? Just an open philosophical question. Many frameworks seem to incorporate MVC but is it necessary? The pro of MVC is that it adds standardization and separation based on skillset (in theory) so you can have a frontend guy working on the View layer without mucking up your hardcore PHP code and bringing the entire website down. The disadvantage is that if you want to break out of the established MVC separations (to do something...tricky), it causes exceptions and makes the code hard to maintain.
In my opinion the perfect framework is robust like .NET (not pidgeon-holing your code into a specific style), keeps the View layer simple so that I don't have to train an HTML guy on cryptic control structures, runs fast as hell and doesn't bog down my server (why I loved php in the first place), and support AJAX so I don't have to write a bunch of functions to support it. I'm indifferent on whether the framework is object oriented or not. I've seen large teams create great products with and without OOP.
I pose these questions because I think a lot of people hear a lot of hype about Ruby on Rails and they want to see a good response from PHP that embraces a lot of the same concepts but still uses the PHP language. Few people know Ruby and if you ask a company whether they want to hire PHP or Ruby guys, PHP wins because there's just more people who know it. The problem is that there's a plethora of framework projects in PHP and I'm trying to find a clear winner so that I can respond to people hyping about Rails and say "check this out, it has the strengths of rails but you don't have to learn a whole new language."
Thanks so much for reading such a verbose post. I've been wrestling with this challenge for a couple days now.
-Ian