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

    Thanks for the list. I may be wrong (often am), but I don't know that we've yet seen such a listing (or accompanying discussion) around here.

    At least, not much. If you note Elizabeth's column(s), you will see that she recently mentioned the Zend Framework (or whatever it's called), which is, hopefully, going to someday be more than mere vaporware (and probably already is, but may not be public yet?).

    As for me ... I just roll my own. Advantage: I know all the calls before I start scripting. Disadvantage: I can't leave well enough alone, and it's a real moving target 😉

      Well you've listed a mix of PHP4 and PHP5 frameworks. Which are you really focusing on? If it's PHP4 I HIGHLY recommend Mojavi2, which is back under active development (by me 😉) and is currently used in hundreds of projects world wide.

        Believe the hype about Ruby on Rails. I started with it about two weeks ago as a complete newbie to both Ruby and Rails. Since then, I have completely switched over a CMS I'd written over the years in PHP, and added many more features I'd been planning on figuring out how to implement in PHP. Getting stuff done in RoR is so much easier, consistent, and quicker than PHP (which is really messy and incomplete in comparison). And I don't think PHP has any performance advantage over Ruby/Rails. RoR has a lot of caching functionality. I like RoR so much that I think I'll be switching all my PHP apps over to it and never looking back.

        edit - here are a couple articles about experiences migrating to RoR:

        Migrating to Ruby on Rails and PostgreSQL: An Interview with CD Baby
        (this one convinced me to seriously try RoR)
        http://www.oreillynet.com/pub/wlg/8274

        From start to launch: http://yakimaherald.com
        http://brainspl.at/articles/2005/11/03/from-start-to-launch-http-yakimaherald-com

          The lead developer of Ruby on Rails just moved to Chicago - 37 Signals apparently.

          37signals.com
          314 W. Institute Place
          3rd Floor West
          Chicago, IL 60610

          There'll be a Rails and Django presentation at DePaul University on Dec. 2 - give us a report Sxooter! 😉

          http://snakesandrubies.com/event/

            Quite a few guys where I work are big fans of ruby on rails, I'll have to let them know...

              Sxooter wrote:

              Quite a few guys where I work are big fans of ruby on rails, I'll have to let them know...

              I can't remember if you've said, but where do you work (if you don't mind my asking 😉 )?

                In the Sears Tower, at a tiny little startup called G2 Switchworks. It's an airline reservation company, kinda delivering what Orbitz / Travelocity did for consumers, but aimed at travel agents.

                  4 days later

                  Thanks for responding, everyone. Unfortunately I haven't really seen a response from anyone that has evaluated a framework and given it a thumbs up or thumbs down. If you've played with any frameworks, please let me know in this thread. Just give it a rating 1-10 and list any pros/cons.

                  FYI, I found a pretty complete list of PHP frameworks on good ol' DMOZ:
                  http://dmoz.org/Computers/Programming/Languages/PHP/Scripts/Frameworks/

                  I'm taking the time today to play with a few frameworks. The first I've tried is PHP-Cake. Unfortunately I'm really disappointed in it. I might come back to it later but it seems rather...half baked. Sorry, I couldn't resist. The website for the site is terrible. They have a wiki and a bunch of other archived support documentation, but there's huge chunks missing. I couldn't for the life of me figure out how to set up a "hello world" script.

                  It uses mod rewrite, but there doesn't seem to be any base rules set...I loaded up the default index.php and the browser just hung. I'll play with it a bit more but in general, the project is new and it feels new. Hopefully, they'll have someone to revise the site, add documentation, and make the initial installation much easier.

                  I'll keep posting to this thread as I evaluate more frameworks.

                    Write a Reply...