The book is directed at CakePHP newbies, and consists of three parts: introduction and first steps, explanation of the basic concepts, and building a real application.
The first part starts with a high-level introduction to CakePHP and MVC. Next follows a chapter about the installation. My impression of that chapter is mixed: on the one hand it explains in detail how to download CakePHP (including four screenshots *g*), on the other hand the chapter ends with CakePHP’s start screen showing a notice (“Please change the value of Security.salt…”) and that database.php is not available. Even though both issues are covered later in the book, it would make sense to address them in the installation chapter. Or maybe it should be merged with the next chapter, which is about building the first application (a simple to-do-list application). It’s a good decision of the authors to bake this first application manually (i.e. without scaffolding and the bake script).
The second part covers the basic concepts of CakePHP: controllers including components (see sample chapter), models, and views (including layouts, elements, and helpers). Plus the bake script. For some reason model behaviors and plugins are not covered…
Especially with the model chapters you have to be careful, because some information is already outdated (the authors used CakePHP 1.2 beta and release candidate 1 (RC1)). For example, the methods generateList() and execute() no longer exist in the current RC2, and in conditions you now have to use:
'conditions' => array('ModelName.field_name comparison_operator' => 'value')
'conditions' => array('ModelName.field_name' => 'comparison_operator value')
What I didn’t like is the chapter about bake. I think bake is quite self-explanatory and hence it is not necessary to explain each step. The respective pages would have been better used to describe how to write your own shell scripts…
In the third part a Q&A (Questions & Answers) application is built from scratch. It starts with applying of what has been learned in the first two parts. Then follow two chapters dedicated to user authentication and AJAX, respectively. And finally there is a chapter covering pagination and RSS feeds, among other things.
What I liked about the book is the example-driven approach and how the book is structured. Throughout the book the same pattern is used: First comes a short introduction describing what will be done in the respective section. Then follows a “Time for Action”, a step-by-step guide of what has to be done. And last, but not least, comes a “What Just Happened?” part with explanations of what was done during the “Time for Action”.
What I didn’t like is the formatting of the code snippets: the indentation of the code looks rather randomly. Another distracting thing is that the proofreader was not very good in catching typos ;-)
All in all the book is a decent introduction to CakePHP with some weaknesses.
Reviews by others (in chronological order):