like I was learning on their dime. I realized, suddenly, that Rails wasn ’ t going to do it for me and my
situation. In other words, I realized that I didn ’ t want a glamorous little sports car — I needed something
a bit less showy and a lot more functional.
Yet there were lots of appealing things about Rails. The MVC framework brought simplicity and
organization to the game. The convention - over - configuration approach made the code nice and lean. Where
was something like that in the PHP world? I started my search, and I immediately found CodeIgniter.
In fact, I had CodeIgniter pointed out to me by one of my employees. CodeIgniter was still in the 1.
phase at that point, and since I wasn ’ t feeling too good about that, I started playing around with
Symfony and Cake and some of the other PHP frameworks. None of them suited me, and so I came back
to CodeIgniter around the time that it hit version 1.5.
Boy, am I glad I came back to it! It was like taking a really long trip around the world and coming back
home to a good friend or loving family. It did what I wanted, right away, without all the complexity and
baggage. I hardly even needed to spend time with the documentation, it was so intuitive.
I built my first customer application in CodeIgniter about six weeks after doing that first series of test
runs. Over the next year, I built a dozen more, ranging from timesheet applications to scheduling apps to
microsite managers and community boards for parents of children with special needs.
The results so far would give even the most hardened cynic food for thought. Instead of spending
countless hours debugging needlessly complex code and dreading every call lest it be a request for yet
another upgrade or change, I can now build entire applications in a weekend. Supporting them is a
breeze, because the code is always organized in an easy, intuitive manner. Just about every time I receive
a request, there is a CodeIgniter library or helper to ease my burden — or I ’ m able to write one for
myself or reach out to the CodeIgniter community to find help.
In fact, I can now easily build something in a few hours that would have taken me days or weeks with
just plain old PHP. It ’ s getting to the point where I ’ ve had to rethink my entire billing process, because
there isn ’ t much sense in charging so little for a piece of software that helps to launch a significant part
of a company ’ s online presence.
From a non - financial standpoint, my relationship with clients has changed. Instead of being an
adversary (saying, “ We really shouldn ’ t do that, ” when I really was thinking to myself, “ Oh please, I
don ’ t want to do that! ” ), I became a collaborator, a helper, a guide. In other words, I ’ m able to fulfill my
role as consultant. Not only that, but by spending less time with minutiae, I can spend more time with
strategy and more meaningful conversations that help my customers move closer to their goals.
And then, in the Fall of 2007, I thought to myself, “ We need a book on CodeIgniter! ” Not just any book
on CodeIgniter, and not just a repeat of the online documentation, but one that will walk a developer
through all the phases of a project, from initial client meeting to launch.
That was the genesis of the book you ’ re holding in your hands right now. At the end of the day, I wanted
to craft a book that would take you from point A to point Z (and yes, we might be skipping a few of the
less interesting points along the way) and give you a working knowledge of the relevant CodeIgniter
pieces as we went.
With any luck, I ’ ve achieved that goal. I ’ ve had a lot of help and feedback along the way, of course, but
ultimately, I wanted to show you how to navigate a typical project, complete with customer meetings,
flast.indd xviflast.indd xvi 6/10/08 5:39:53 PM6/10/08 5:39:53 PM