10 of 13 people found the following review helpful
Informative but overly technical,
This review is from: PHP Objects, Patterns and Practice 3rd Edition (Expert's Voice in Open Source) (Paperback)This book is advertised as a resource for intermediate PHP programmers who are not necessarily familiar with the Object Oriented (OO) features of the language. However, I would caution potential buyers to think carefully before purchasing this product. While this book does exactly what it says it does, it does so in a garbled and overly technical style of writing that does not allow easy comprehension of the complicated material being discussed
Its first section aims to introduce the OO features of the language to those who may not be familiar with them. Those whom this applies to will therefore be surprised at the brisk pace this section takes. Nevertheless, it does provides a solid enough grounding if you are willing to also consult other resources - or if you have previous OO experience.
It is the second section - the examination of numerous design patterns - with which I am most displeased. A large amount of vocabulary will be introduced in the opening chapters: polymorphism, aggregation, composition, orthogonality, coupling, cohesion, and encapsulation (to name but a few). These terms, which are not explained adequately in the first place, are subsequently used freely throughout the remaining chapters and will certainly leave all but the most experienced programmer confused; the UML (unified modelling language) diagrams are equally unclear and ill explained.
The patterns themselves continue the trend of being overly technical. One has to reread a chapter numerous times in order to even understand what Mr. Zandstra is trying to communicate. It does not help that there are several typing errors in the prose and even the occasional (simple) error in the code itself ('asset()' instead of 'isset()', to give an example).
Unfortunately, what would arguably be the most useful chapter of the book is also the worst. If one has struggled with the book so far , chapter 12 will certainly confuse you. This chapter attempts to have us create a working application to hold event listings (theatre tickets and so on), but it is no easy task. The explanations of the 'front controller' and the 'application controller' patterns in particular are extremely unclear. Moreover, portions of the code are left blank and it is assumed that we will be able to complete the remaining code (XML parsing/XML file creation etc) without assistance. This essentially renders the chapter useless for those who are struggling, since it is impossible to work backwards from a 'working example' if we cannot view one in the first place! It is also mentionable that while these two patterns seem to overlap each other, the author does not tell us if, when writing the code for the 'application controller', we should be overwriting the classes that we previously created for the application, or if we should be creating new classes that can be used as an alternative to the 'front controller' pattern.
The third section, I admittedly have less experience with so far since I purchased this book primarily in order to learn about design patterns. If I could adequately understand the second section, however, I would have been keen to read ahead into the third section.
Having said all of the above, I would like to point out that my understanding of the possibilities created by OO has improved through reading this book. I understand most of the material up to (and including) Chapter 11 and it has improved my conception of object oriented design; it has just been an large uphill struggle from page 1. Purchase with caution.
Tracked by 1 customer
Sort: Oldest first | Newest first
Showing 1-3 of 3 posts in this discussion
Initial post: 6 May 2012 07:25:05 BDT
Mr. I. J. Cutress says:
Could you recommend other PHP manuals for those that have used the language but are more interested in learning PHP OO and other features?
Posted on 12 Jun 2012 16:39:15 BDT
S. G. West says:
This review is exactly right, and in fact the reviewer and I gave up at exactly the same chapter. I have read large parts of the Gang of Four book on design patterns, and while it is hard going (especially since I don't understand C code very well) it never completely lost me the way this book did at Chapter 12.
Having said that, there is a lot of useful information in the book and I was particularly glad, for example, to read the author's description of the UML.
Posted on 11 Sep 2013 04:22:25 BDT
Last edited by the author on 11 Sep 2013 04:30:34 BDT
John Walker says:
I read the first edition of this book a few years ago. I had attempted to grasp OOP from other books but had failed to 'get it'. This was 'the one' that got me up to speed with OOP. So, I love the book for that reason.
However, I do agree that it can be tough going. But I think that is more to do with the nature of the topic rather than the author. I read and re-read chapters. In fact I pretty much read the book twice and then constantly referred to it for many months thereafter.
So, I understand your frustrations. But for me this was the only decent book that I found on PHP OOP.
I am now considering buying it again to see what new stuff has been added since the first edition.
On a side note - One annoying thing about Apress, the publishers, is that, a few years ago, when I submitted errata it was often ignored, so I don't bother to send in corrections to Apress anymore - this might explain the silly errors in a third edition book ... come on Apress make an announcement to let us know you repent, admit your sins and have improved the way you deal with errata!
‹ Previous 1 Next ›