Author: Ed Lecky-Thompson, Steven D. Nowicki & Thomas Myer
Aimed at: Intermediate to advanced PHP programmers
Pros: Lots of big examples
Cons: Requires a lot of work to get anything from it
Reviewed by: Ian Elliot
This book assumes that you mostly know about programming in PHP and uses the latest version, i.e. PHP 6, to illustrate bigger ideas. These ideas are specific to PHP in the sense that this is that language used for the examples but they are also more generally applicable. If you are looking for a book that tells you all about the differences between PHP 6 and earlier versions of the language or an introduction to PHP then you need a different book.
The book starts off with a look at object-oriented programming. It mainly concentrates on encapsulation, inheritance and the use of interfaces. It explains the pros of inheritance but doesn't go into what many programmers see as its dangers. There is also no real discussion of deeper ideas and the problem inherent in using a loosely typed language with the object-oriented method. In short this is a very introductory and shallow look at a difficult and sophisticated topic.
The next chapter introduces the UML modeling language and again there are no surprises here - it's a basic introduction without even much customisation to PHP.
At Chapter 3 we start an example project that continues though the book - a contact manager. This is used to illustrate object-oriented design and design patterns in general. Design patterns are introduced in Chapter 4 and we are presented with UML diagrams for the standard Gang Of Four patterns before moving on to the big PHP example again. Chapter 5 deals with implementing and using collections and Chapter 6 rounds off the first part of the book with a consideration of database using the PDO library. It is worth saying that the database used in all of the examples is PostgreSQL rather than the more common MySQL.
The second part of the book is about more advanced topics: object relational mapping, event driven programming, logging and debugging, creating and using web services, communicating with users, session and authentication and a look at architecture and frameworks. The majority of chapters in this section could be called "borrowing other people's techniques and implementing them in PHP" - this isn't a bad thing but if you already know the techniques from other languages then it will all seem familiar. The bulk of the chapter on web services is on SOAP with a short introduction to REST but without much deep philosophy at the end.
The final section of the book is an extended case study and at over 200 pages long it takes some reading. In fact you can say this about the entire book as all of the examples are very long and involved. You are going to have a hard time getting an overview and really a detailed reading of most of the chapters is the only way to get any value from the book.
This book isn't for the beginner and it doesn't teach you about PHP 6. It's essentially a book on design that happens to use PHP and if this is what you are looking for then there is plenty to read and plenty to think about between its covers. If on the other hand you prefer your books short and sweet this isn't for you.