What is CodeIgniter?
Compared to other languages, PHP has an abundance of frameworks (Wikipedia lists about 40- only Java comes close) available. One of the better-known ones is CodeIgniter, that has been around since 2006. When I started looking into frameworks, CodeIgniter was one I considered before ultimately going with CakePHP. Back then, a lot of Cake developers seemed to move back and forth from Cake to CodeIgniter and vice-versa. There seems to be of late some discussion in the PHP community if frameworks are really necessary, especially after PHP creator's Rasmus Lerdorf's controversial presentation on framework performance -- in which CodeIgnitor did very well. The central argument is in these discussions is wheather the gains in coder productivity are worth the performance costs a framework entails. Myer tells his story of how, after building websites for years found himself with a lot of complicated code around that was difficult to maintain. Looking for a simpler way, he evenually settled on CodeIgniter. CodeIgniter's biggest advantage is it's speed-- because you can control when you use it, there's a lot of optimizations the experienced programmer can do. As well, unlike symfony and Zend, it runs on web-hosts with only PHP 4 support.
Most of the above is covered in the first and third chapters. The first chapter "Welcome to the MVC world" gives an interesting overview of the evolution on the MVC (Model View Controller) pattern from its Smalltalk roots, though NeXTstep/Cocoa and finally to it's use in Ruby on Rails. Near the end of the first chapter, Myer gives a good run-down of the various frameworks the he considered, needless to say, he settles on CodeIgniter -- else this book would have turned out a bit differently-- however I think he's pretty honest about the pros and cons of the frameworks, CakePHP (1.1?) and symfony, he considered.
Next, "A 10,000-foot view of CodeIgniter" gives a run-down on the framework, covers a lot of the built-in libraries. It coves downloading, installation and file layout as well as some of the libraries included. Readers learn to create models, controllers and views, ending with a basic "hello world" type application. By the end of these two chapters, readers are going to have enough background in CodeIgniter to get started building an application.
What makes this book different is the book also teaches Agile programming while teaching the framework. In the second chapter, "Agile Methodologies and Approaches", the reader is given a quick overview of Agile Methodologies, as there's several approaches with names like "Scrum" and "XP" (extreme programming) as well as a set of links to further reading. Past that, the reader is taken into the book's project: a shopping cart application and the process of meeting with the client and building a list of requirements. Every few chapters ends with a "sprint backlog" update and meeting with the client. The Agile programming aspect of this book makes it stand out a bit from the usual "Learning framework X"-type books.
Like a lot of introduction books, security seemed to be a bit under-developed. While the author does make mention of developing a secure application early on, security is addressed mostly in in chapter 9, "Security and Performance"-- which is mostly examples of securing the application developed over the previous chapters-- with a bit on caching thrown in at the end. The author does give a list of websites with security tips, but I wish security had been worked into the application from the start. Case in point would be the usage of $_POST at several points in the book-- even CodeIgniter's online manual cautions against this -- while it might be less typing than "$this->db->escape(...)", before updating something in the database, it would be something I'd expect to see in a book labled "Professional."
By the end of this 300-odd page book readers will be familiar enough with CodeIgniter to develop their own applications and use the as well as Agile methodology for building those applications. Granted, the website you build isn't that fancy. All the major PHP frameworks-- Zend, Cake, symfony -- have at least one book, now CodeIgniter has one too.