Tiffany B. Brown

A web log about web development and internet culture with frequent detours into other stuff.
Links for 2007-04-12
Links for 2007-04-18

What’s your favorite PHP framework?

Another post of interest: An interview with Timani Tunduwani on why he made the switch from CakePHP to PRADO.

Related post elsewhere: You may be interested in PHP frameworks - Which one is Most Suitable for you?

So I’m making my first foray into PHP frameworks. I’m tinkering with CodeIgniter right now. I chose it on a lark, in part because it was easy to install, didnt’t require too much tinkering with configuration settings, and well-documented.

Though I like CodeIgniter’s OO-MVC approach, I’m not wedded to it. I’m also very interested in what else is out there. So please share with us:

And if you haven’t yet looked into PHP frameworks, here’s a (far from comprehensive) list to get you started:

Also worth reading, Rasmus Lerdorf’s February 2006 post, The no-framework PHP MVC framework.

Share this entry:
  • TwitThis
  • Digg
  • Technorati
  • del.icio.us
  • Ma.gnolia
  • Mixx
  • NewsVine
  • Reddit
  • StumbleUpon
  • TailRank
  • Furl
  • Slashdot
  • Global Grind
  • YahooMyWeb
  • Facebook
  • Google
  • Live
  • LinkedIn
  • MySpace

40 comments

  1. I recommend CakePHP as it has an active and friendly community.

  2. I spent a little white looking at the documentation for quite a few different frameworks. At the end of that I chose to try using Codeigniter.

    Although I found it very easy to use, and it made a lot of sense It still felt easier to do without it so I haven’t really been back.

  3. I started using CakePHP, primarily because of Snook’s recommendation It also seems to have a very strong community backing.

  4. CakePHP all the way! Easy to install, nothing really new to learn - it’s not like Symphony where you have to set up all those config files before you can even start working and Bake makes it easy to create all your models, controllers and view scaffolds.

  5. Cake is a great project with a great community, no doubt about that. They are also tremendous strengths of CodeIgniter.

    I’m a CodeIgniter advocate, and I don’t think you can beat its combination of speed, elegance, and “get the hell out of my way now”-ness. Helps when you want help, gets out of your way when you don’t. ;)

  6. If you develop enterprise applications, you should try Symfony. Yahoo Bookmarks (and its 20 million users) use Symfony.

    Symfony also provides more than 700 pages of high quality documentation (http://www.symfony-project.com/content/documentation.html).

  7. Tiffany Brown’s Blog: What’s your favorite PHP framework?…

  8. [...] Brown asks (in a new post) which is your favorite PHP framework: So I’m making my first foray into PHP frameworks. [...]

  9. mrtopher said on 17 Apr 2007 at 11:33 am

    CodeIgnitor is my weapon of choice. I have looked at Blueshoes, Prado, Symphony, and the Web Application Component tool kit. With these others like Prado and Symphony it seems to me like you have to re-learn how to code just to use them. Where with CI, it just feels like it works with you a lot more than others.

    I really wanted to give Symphony a try, because I had heard so much buzz around it, but I couldn’t even get it installed. If you have to work that hard to just get the framework installed then you are probably going to have larger problems down the road (but thats just my opinion).

  10. Stuart said on 17 Apr 2007 at 12:20 pm

    I’ll be a bit of a spoiler here. I’ve tried Cake a couple of times and have found that if you venture outside of what is available in the various tutorials you will quickly find it just as difficult to deal with as any other framework. After hitting one too many stumbling blocks for some Cake framework specific issue that I know I could program myself in a matter of minutes, I gave up.

    Personally I am gravitating more and more towards the Zend Framework simply because it lets me do the programming. Cake and other frameworks love to show of this automated scaffolding demo (Bakery in Cake’s case) for building a quickie site. However, these demos are little better than parlor tricks that create useless little sites and don’t solve any of the really difficult aspects of building a real world site or app. If you are halfway proficient with PHP you can crank out a similar site in the time it would take you to read the “how-to”.

    If you are like me you already have a collection of classes that take care of basics like routing, database interaction, authentication, etc. so the value of a framework becomes less clear. Nonetheless, I find the Zend Framework the best for letting me leverage my own code with their framework in order to gain some benefit.

  11. Use an in house one my company developed, but I like CodeIgnitor.

    Prado would be my second choice, as it is “event driven” development (like ASP.NET).

    Most of the others are bloated. Do really need to support more than one database type? Do you really need “Active Record”? Why not use a code generator to create your Data Access Layer (like POG)? Definitely speeds it up in the end.

  12. I did a good comparing when I had to pick a framework last november for a project at work. I chose Symfony because it’s pure php5, well-documented and stable. It seems to have a good userbase as well.

    I’ve been very happy with the choice. It’s a great framework, it has already a wonderful feature set, active development, and best of all: It’s PURE php5. No php4 backward compatible code (which basically means that the framework can use all of the great php5 features that backwards-compatible frameworks can’t use because php4 will whine about it).

  13. After looking into a bunch of frameworks, I chose Trax to work with on a series of projects.

    I liked Trax for a couple of reasons: (1) it was written for PHP5; the code is simpler, shorter, and easier to work with, because it takes advantage of the much-improved object features in PHP5. This is good for my code, and also for looking at the code in the framework itself. (2) It’s unapologetic about trying to be as similar to Ruby on Rails as possible (within the limits of PHP). This means there are a lot of good examples and books, which you can use without too much effort. I also like the way Rails works, it fits my brain.

    In reviewing the different possibilities, I looked at Code Igniter and Cake, and disliked them for supporting PHP4. It made my application code more “wordy” and less attractive, less Rails-like. I frankly don’t want to work with code that isn’t taking advantage of PHP5, which is a large jump forward.

    I also looked at Prado and Symfony, and decided they seemed more complicated to me, or lacked instructive documentation, etc. I don’t remember the details, just that they didn’t work for me. I also gave Qcodo a significant extended trial, it seemed really good, but it was in too much flux, with each new version (at the time) breaking backwards compatibility. I got tired of that, and it also just didn’t mesh with the way my brain works (very much my own limitation).

    I have been happy with Trax, but it is not without its limitations, which include a vastly smaller community than projects like Cake, less documentation, and some unfinished areas of functionality. Still, I’ve been able to build most of what I want, and don’t regret choosing it. YMMV.

  14. I’m a massive symfony fan. I’ve been using it for well over a year now and find it a pleasure to use - from tinytiny mocked up (even static) prototypes, to advanced, complex systems. symfony saves me time, every time.

    Productivity is key, you see. symfony.

  15. [...] Brown asks (in a new post) which is your favorite PHP framework: So I’m making my first foray into PHP frameworks. [...]

  16. I really like CodeIgniter. It’s very lightweight and gives you a lot of flexibility, while still providing a lot of functionality. The documentation is also very good, and there’s a pretty solid community around it.

    I’m interested in Symfony as well (also very good docs), but the ORM layer seems a bit verbose.

  17. Stefan Sturm said on 18 Apr 2007 at 12:44 am

    I choose PRADO…

    And you should link to the right Page: http://www.pradosoft.com.
    Your link http://www.xisc.com points to an older Version of PRADO

  18. I recommend Agavi for an enterprise framework - its also Mojavi based like Symphony and the others.

    It however, doesn’t lock you into any particular implementation - ie you can use PDO, Propel or Doctrine or anyother DB wrapper - its up to you!

    Lacks in Documentation but has a great active IRC #agavi on freenode!

  19. Viva CakePHP!

    In response to Stuart on his trouble with Cake, I don’t think he took a very good look at the structure of Cake. I have yet to run into any serious problems, anywhere, period. Sometimes when I can’t figure something out, I just hop on over to the community, and when I do figure it out it actually ends up being so easy that I’m dazzled by the ingeniousness of it all. There’s just too much good going around over at the Cake community, and Cake is just way too easy to implement. It works with both PHP4 and PHP5, and it has many database drivers available (MySQL, PostgreSQL, IBM DB2 (in beta i believe) etc. etc.). I enjoy using cake so much I just smile every time I start up Eclipse.

    Symfony - who wants to use yml!??! Anyone?? Anyone!?
    CodeIgniter - incomplete, not as thorough as Cake, although it’s slightly faster than cake.
    Zend - framework?? wha??

    I may sound like a Cake fanboy, but seriously, you’ve gotta take a look at the manual. I was up and running within a day and haven’t looked back.

  20. CakePHP for me. I think that some of Stuart’s Claims are a little off. Not to be rude, but he must not have spent much time with the framework. Zend is confusing at best (do they even have a tutorial to get you started?). Cake gets out of the way and lets you program, which is what I like about it. I wasn’t too keen on a framework - because - as most have pointed out here, I already have a library of scripts that I use. The beauty is, I can incorporate these into Cake and extend them however I need.

    Cake also takes little to no configuration to get you started (Database). The scaffolding, as with any language, is a SIMPLE tool - it’s not meant to be a full blown admin interface - its just for quick data entry. It is much easier to build your own admin in Cake.

    I recently had to re-build our internal ‘Solutions Center’ application at work. In less than 2 months we had the app up and running with auth/auth (Cake built in ACL), and with a minimal amount of code.

    Active Record is a convenience. I don’t mind writing SQL - and in the past I have use a ‘datastore’ - but using active record lets you maintain associations in a very nice manner - with the ability to bind/unbind on the fly.

    Cake can work with both PHP4/5 - I use 5, so the excuse that it still supports 4 doesn’t really hold much water. You can move forward using 5 without any issues whatsoever.

    The Cake manual an API (mostly the API) help you get up and running in no time. It’s easy to learn (you shouldn’t have to spend hours learning a framework - you should be able to get in and get things done), it’s filesystem is very logical and easy to work with (MVC, HTML, etc), and extending the app without destroying the core code is a breeze.

    At this point, I haven’t found anything that Cake fails at for many of the tasks I have needed (web services, email, network, images/manipulation, ACL, sessions, DB support, etc - the list goes on).

    Also, the core development team is extremely focused - and the 1.2 release is very promising.

    Give it a try - you won’t be disappointed.

  21. Edward said on 18 Apr 2007 at 9:40 am

    It’s Qcodo for me.

    I looked at Symfony (installation failed so not a good start), Cake, CodeIgnitor, ezComponents and others but none seemed as slick as Qcodo.

    I love the ‘codegen once’ once approach for generating the ORM from the DB. By using inheritance, you can recodgen easily and none of your custom code is overwritten.

    I suspect it doesn’t have quite so much buzz about it as it is fully OO and requires PHP5 - but it is a seriously good framework. The community is also really friendly.

  22. Definitely CodeIgniter because of it’s small foot print, liberal coding style, built in libraries and excellent documentation which provides almost zero learning curve.

  23. CakePHP ofcourse, because once you have Cake, you can’t go back…

  24. My favorite is PRADO. The better for professionals programmers. And Each time is better and enhanced.

  25. I’m a newbie, looking to get started on the right foot.

    CakePHP:
    - I may, one day, want to develop apps for joomla, or drupal, Cake is about the only MVC which has special extensions for this.
    - I believe that Cake has built-in user authentication, which could be useful for me.
    - I have read that Cake’s documentation is lacking, and that Cake can be difficult for a newbie. Although, from what I have seen of the manual, it does not look so bad.

    Codeignitor:
    - Best tutorial screencasts I’ve seen.
    - Great documentation.
    - Possibly, the simplist PHP MVC to use.
    - I am afraid that codeignitor may be limited. No template, no extensions for drupal or joomla, no support for php5, no user authentication.

    Again, I have never used any MVC, so please correct me if I’m wrong about any of this.

    I am thinking about starting with codeignitor, just to learn about using an MVC, then maybe moving on to Cake. Would that be wise? Or would I be better starting with CakePHP?

    walterbyrd@yahoo.com

  26. Check out Tigermouse Ajax framework for PHP. Take a quick tour to see its main features.

  27. Have any of the comments resulted in a change of your approach from CodeIgniter to something new? I’ve played with Symfony, CakePHP and CodeIgniter (and yes, they all installed). CodeIgniter definitely seems to be the fastest to get to grips with for someone without Framework experience, and the benchmark I found (only found one so far) said CI was much faster than the other two. I’m still waiting for a good database style benchmark.

    Symfony was the easiest for me to use as an actual framework with building (ie. telling it my db format and letting it work out the controller etc). But, in my day to day work and my home toying, I still haven’t found a good argument to use a framework over build-it-yourself PHP; especially if you’ve built up libraries and templates for MVC/ data-app-presentation that work nice and fast.

  28. @Colin: I can’t say that I’ve been swayed by comments. I still dig CodeIgniter’s ease of configuration. But I haven’t had time to dig into any other frameworks.

    A recent side project, however, has me knee-deep in Smarty as a templating language and framework. The web application we’re using includes Smarty at its core.

  29. Might be off topic, but I can give a thumbs up for Smarty so far. We’ve been using it at my work for the last year or so and found it very valuable for separating app from presentation.

    It’s also great to build the app, and throw the user interface at the designers and let them figure it all out without risk of impacting code. Fast too.

  30. Codeigniter is my best choice and i have developed all of my project based on it.

  31. James said on 6 Dec 2007 at 4:14 pm

    I chose CodeIgnitor because of the easo of installation and configuration, the light footprint, and speed. It is also an easy way to begin using a framework. Maybe when I have more experience with it, I will start to stretch and try some of the others I looked at. But if you need to get going on a project immediately, it seems the best way to go.

  32. Ivan said on 9 Jan 2008 at 2:52 pm

    You may consider this one too - qphp.net. It is ASP.NET like, object oriented, event driven, component based, ajax support, i18n support, highly customizeable.

  33. Mason said on 11 Feb 2008 at 2:09 pm

    I chose PHP5. I think understanding how to access that which I need is much more productive for me. PHP5, Yahoo UI and some JSON is my framework of choice. All these layered fluff is starting to become less OOP and much more of a multi-layered bloated chaos. You can create the same with less fluff with PHP. Then again, I’m justa passin thru here!

  34. Nahun said on 16 May 2008 at 10:04 am

    Well I really like the Zend Framework, it has the backup of Zend and the MVC is well defined and easy to setup, clear SEO friendly URLs are easy to configure, a really simple DB abstraction and interaction, full OOP in php5, lots of documentation and tutorials and more. Although there are components that are unnecessarily complicated(Zend_Form for example) I find it really easy to use. I guess all depends on how you like to work, to me, Zend is the choice.

  35. [...] of general purpose respect for a Tiffany B. Brown experiment, I thought I would view the introductory videos to CodeIgniter. My randomness [...]

  36. praveen said on 10 Jul 2008 at 4:58 am

    i haven’t tried any of framework BUT i think codeigniter would be best for me to start.

  37. People just getting into MVC or those of you who are unfortunately covered in Cake, it’s time to look at the Fuse PHP Framework. Get serious about decreasing your development time and intuitively using the features the framework offers. Read this article:

    http://jimkeller.blogspot.com/2008/09/why-you-should-do-your-php-development.html

  38. steward said on 5 Oct 2008 at 5:54 pm

    Been shopping for a few weeks, awful tired of trying out new stuff!!
    No decision yet, but have to disagree with the cake votes. I never did get it running and the community support was ‘unfortunate’ to put it nicely.

    CodeIgnitor has been the easiest so far. Still shopping…

  39. juli said on 24 Nov 2008 at 1:55 am

    qcodo is now forked as qcubed. The site is http://www.qcu.be

    There are some really good people working on it and I would tell anyone to give it a try.

  40. tiffany said on 25 Nov 2008 at 11:22 pm

    Thanks Juli. That’s good to know. I’ve updated the post accordingly. It doesn’t look like Qcodo is dead, however. Is the Qcodo project still active?

Leave a Reply


XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Comments for this post will be closed on 25 May 2009.

Maximum 2 links per comment. Do not use BBCode.
previous post: Links for 2007-04-12
next post: Links for 2007-04-18