Oliver Nassar

Professional CodeIgniter: Review (part 1)

July 31, 2009

So far, I'm done about half of Professional CodeIgniter by Thomas Myer. As you guessed, it's about the php, MVC framework CodeIgniter. While I've spent a lot of time online at the documentation, tutorials, etc., I'd preferred to grab a book on it (the only one I could find that's available) to get a more formal introduction.

In terms of how it's written, I was very impressed by it very early on. The language is very clear and concise, and Myer does a great job of walking you through a very real world example. I was actually blown away by how well he can articulate fairly advanced concepts. However so far this was the highlight with some major let downs.

For me, I came into this expecting a book on how CodeIgniter worked, how it's structured, it's benefits, etc., but after having read half of it so far, it's become much more like a basic php web development tutorial. There is a recurring tutorial that is themed throughout the book of how to setup a rudimentary e-commerce site. When the tutorial begins, some CodeIgniter specific code is presented, with outlines of the helper classes, organization of a request/mvc separation, etc., but very quickly, most things specific to the framework are forgotten, and CSS/JS/PHP becomes the focus.

Additionally, the focus seems to be targeted at a beginning. Perhaps that was the intention, but it was a real disappointment for me. This framework is exceptionally powerful, and while it's seeming to operate much more like a library than a framework such as CakePHP, it has tons of usage, most of which doesn't seem to come through in the first half. A lot of time is devoted to making ajax calls to a controller (understandably a notable topic, but not specific much to CI), pages and pages of CSS (at one point there was a 3 page stint of pure css code, which didn't seem very relevant as it's a PHP/CI book), and even JS.

I believe I understand the intention; Myer wants to take you from concept to delivery, and show you how everything in between fits together within the CI framework; however because of this, I've felt that the power of CI has been left behind for me to figure out in their documentation.

While CI does push convention over configuration, it does seem to come across as a very strong and powerful library rather than a framework (with some pre-req's that push it into the latter category). This isn't necessarily a bad thing, but since it's the case, I would expect more of the library to be explained, and how it could be useful, rather than walking through a tutorial that is targeted much more at the new php developer delivering a larger project than they're used to.

I'll follow up with my second half of the book review shortly.