CodeIgniter 1.7 Professional Development by Adam Griffiths is a great introduction to CodeIgniter - and the Model-View-Controller (MVC) design pattern in general - for intermediate and advanced PHP developers. I was asked to write a review of this book by Packt Publishing and this is now my third CodeIgniter specific book which I’ve studied. I’ve been working with CodeIgniter on several projects for over two years now so I’ve become quite familiar with the framework, but I’m always interested to see how other people approach problems and use the libraries available. There’re always a few hidden gems which are waiting to be discovered!
The book is aimed at confident PHP developers who can build fairly complex applications but are looking at using the very lightweight and powerful framework, CodeIgniter, to speed up and structure the development process. The book promises to give you enough working knowledge to use CodeIgniter to build virtually any web application, though covering all of the advanced subjects associated with CodeIgniter, building reusable libraries and creating mini applications. If you currently write PHP applications, have some knowledge of object oriented programming concepts and want to be able to build larger applications in an organised and structured way, you should be able to follow this book without any problems. This book also covers using third party services to authenticate users for your application, such as Twitter oAuth and Facebook Connect, so if you’re also interested in integrating these services into your application you will find this very useful.
CodeIgniter has a set of coding guidelines which are recommended when building your application. Your application will still function if you don’t follow the guidelines, however it may cause confusion if working in teams or revisiting old code. This book follows the guidelines and even spends a few pages at the beginning getting you used to the correct and incorrect syntax so that you don’t start off with any bad habits. Another advanced element of the book is Chapter 7, Building a Large-Scale Application. This walks you though some of the issues associated with large, heavily accessed applications, such as managing bottlenecks, caching and managing multiple instances of your application. This sort of streamlining is important for applications which are expected to receive heavy amounts of traffic and can make a big difference to the performance and user experience. Another subject which will help you take your applications to the next level is covered in Chapter Eight, Web Services. This shows how you can create RESTful web services to interact with many web application APIs (for example, posting / getting tweets from Twitter, etc.). You can also build an API into your application to allow other services to interact with it. These chapters are walked through in detail and the full code is presented at the end so you can give it a try yourself.
Overall I thought this book managed to get a lot in for its size (compared to a lot of programming books!) and it covered everything you’ll need to start working with CodeIgniter and build large scale applications, reusable code, and integrate with third party services (and let third party services integrate with your apps). I would certainly recommend this book to any php developer who is looking at stepping into the world of CodeIgniter and maybe even beginner CodeIgniter developers who want to advance and start building larger scale applications.