When it comes to PHP rapid development frameworks, two of them tend to get lumped together and compared a lot. CodeIgniter and CakePHP are two MVC (Model/View/Controller) frameworks that share a lot of similarities but at the same time have some distinct differences.
I have built 5 web sites using CakePHP. I found CakePHP to be a refreshing look at how to develop a web site. Maybe it wasn’t so much CakePHP itself that was appealing to me, but the concept of Model/View/Controller architecture.
Once this architecture is understood, it is pretty easy to dig into any MVC framework.
I found a great article written about a year ago regarding CodeIgniter vs. CakePHP at snook.ca. This post sums up the major differences quite well.
I believe much of CodeIgniter’s appeal is its simplicity in its approach. Most of the work is done in the controller, loading in libraries, getting data from the model, and pulling in the view. Everything is in plain sight and you can really see how things work.
CakePHP’s simplicity comes via automation (euphemistically referred to as “automagic”). It makes the coding process quicker but harder to figure out “what is going on” without popping your head into the core. For me, I like to understand how everything works and I’ve had to poke around under the hood more than once. For people just getting started, things probably look a little daunting.
Basically, both frameworks try to get you along your way quicker than coding from scratch, but both accomplish this in different ways.
Good stuff.
So, now, back to my thoughts. After using CakePHP on a few projects, I decided to give CodeIgniter a try. I found CodeIgniter to be a lot easier to work with. I just seemed to be able to accomplish my goals faster with CodeIgniter.
I still have yet to use CodeIgniter as much as I’ve used CakePHP, but I’m really liking it. I just started putting together a new web site for myself today, using CodeIgniter, and I seem to be able to translate my ideas to code much faster than if I was using CakePHP.
I am thinking that as I learn each framework more, I will continue to swing back and forth as to which one I like. The good old pendulum concept.
del.icio.us Digg Reddit blogmarks Help