Choosing a PHP Framework - symfony, CakePHP, Code Igniter

by Liz Jamieson on January 3, 2008

in Web Technical

If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!

Which PHP Framework?

I code PHP flat - I mean by that that every time I write an application I start from scratch and this is now becoming tiresome, especially the database access. Now I do have some common functions that I re-use but I can’t help but notice that other PHP coders out there, especially with the advent of PHP 5, are using one of the many frameworks available. But which one for me? Having read around the web it seems there is no best one - it depends on what you are already good at, what you need, how complex your application etc etc.

CakePHP, CodeIgnitor and symfony all caught my eye for various reasons. I liked the look of CodeIgnitor as it looked easy, CakePHP because so many people seem to like it, and symfony because it has been adopted by some of the the most prestigious applications on the web (read delicious). To help decide a good place to start is this page listing all the major features of each PHP framework.

The important features for me were

  • fast execution
  • not to force the use of templating (I hate Smarty and the like)
  • help with AJAX (yuk Javascript)
  • easy to use with short learning curve
  • great documentation

That left me deciding to look at symfony.

Now I develop on Windows (Vista on my laptop and XP on my desk), and host on Linux. But the symfony website does not appear to address the difficulties if any, of installing on Vista. There is a link out to external blog where others have advice on setting up on Windows Vista, but that was all I could find. But after a day just trying to get the test environment running in symfony I was completely disheartened. It is really far too involved and too complicated.

What does a lone developer (who already has to be a jack of all trades - web designer, database designer and coder, artist, coder), need with a framework that requires a PhD in good luck to get going? I went through all that manoeuvring just to get as far as the test installation (sandbox). What was the real installation going to be like?

Already feeling jaded, I move onto the CakePHP web site when cute nomenclatures like CakeForge, the Bakery and numerous plays on the cookery theme, start to get on my nerves before I have read a single piece of documentation. OK - that’s not fair. The web site is user-friendly and CakePHP is clearly a mature product with a big following, but I want a product that quickly gets to the point. Time to go. I hear Code Igniter calling.

  • Digg
  • MisterWong
  • Reddit
  • SphereIt
  • StumbleUpon
  • Technorati
  • del.icio.us

Related Posts

{ 1 trackback }

Choosing a PHP Framework - symfony, CakePHP, Code Igniter
01.18.08 at 4:00 am

{ 4 comments… read them below or add one }

Tom 02.22.08 at 10:16 pm

Another good place to have an idea of PHP framework’s notoriety, maturity and activity :
http://www.therightsoft.com/softwaretechnologies/webframeworks/?languageid=4

Liz Jamieson 02.23.08 at 12:15 pm

Why use the term notoriety? It is usually used to mean well known in a negative sense :

“Known widely and usually unfavourably; infamous: a notorious gangster; a district notorious for vice.” Just wondered.

ThinkingSerious 04.26.08 at 3:00 am

Where did you get stuck installing a Symfony development environment in Vista?

Have you considered running your favorite Linux distribution in VMWare for a nice development environment?

Liz Jamieson 04.26.08 at 4:11 pm

Fortunately where I got stuck with symfony is now a distant memory!

I chose to use Code Igniter in the end. I know it doesn’t suit everyone, but I find it is just what I need. The installation takes 1 minute on any platform because there basically isn’t one. Although I enjoyed reading about VMWare - thanks Tom for pointing that out to me.

Leave a Comment

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

Previous post: How To Write a Web Application - Part 3

Next post: Code Igniter - The MVC Model and Me