Shop now Shop now Shop now See more Shop all Amazon Fashion Cloud Drive Photos Shop now Learn More Shop now DIYED Shop now Shop Fire Shop now Shop now

Customer Reviews

4.1 out of 5 stars
4.1 out of 5 stars
Format: Paperback|Change
Price:£28.99+ Free shipping with Amazon Prime
Your rating(Clear)Rate this item

There was a problem filtering reviews right now. Please try again later.

on 12 February 2012
I rather like this book. PHP is not well served by intelligent discussions of advanced OOP design -it's a pragmatic but ugly language so most of the really smart hackers tend to congregate around the elegance of Ruby or Python. Matt Zandstra is a good PHP programmer and fills this gap quite well.

The structure is logical, moving from OOP syntax and basic concepts through tactical object patterns to their application in more strategic enterprise and data patterns. It closes by surveying more general areas of good development practice such as testing and version control.

Covering so much ground the pace is rapid, so you'll likely struggle unless you are fluent with basic PHP and have a smattering of OOP knowledge.

The reason for my 4 star rating is the way that Matt highlights the practical value and application of the patterns he covers. The general approach is to show how a seat-of-the-pants approach can get you into trouble as your system evolves, and how the judicious application of patterns can strengthen separation of concerns and flexibility. I have a couple of other pattern books, but they are more academic and leave you wondering how you would actually use these ideas. Matt's approach is more successful.

I've dropped a star because there are too many areas where the writing could be clearer, particularly in the Enterprise Pattern section. And there are areas where I feel he has backed the wrong horse - for example the version control section focuses on Subversion, while these days the OS community seems to centre around Git and GitHub.

But if you are an intermediate developer you should emerge from the process with significantly stronger skills.

There is however, a major caveat. I have read many thousands of books in my time, and THIS IS THE MOST ILLEGIBLE LAYOUT I HAVE EVER HAD TO CONTEND WITH. The font is too small, the lines are too long, and the leading is too crowded. It's incomprehensible that a professional publisher should treat their readers with such contempt. They should either add more pages or cut some of the more specialised content (for example there are long sections on creating PEAR packages and Domain Specific Languages which most readers will find little use for).

All in all, though, a decent effort full of practical ideas you will find yourself using in your day-to-day work.
0Comment| 6 people found this helpful. Was this review helpful to you?YesNoReport abuse
on 20 March 2011
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.
33 comments| 12 people found this helpful. Was this review helpful to you?YesNoReport abuse
on 15 August 2012
I wouldn't hope to learn PHP OOP from this book, it's rather for people who know OOP already. The book is in 3 parts and the most useful one (for me) - patterns - is translating the most popular patters (taken mostly from Java and the "gang of four" ideas) to PHP. This subject is really advanced and the patterns can serve as a good starting point for different programming challenges. Not an easy book, but very good and professional approach. The author is doing much to make it easier to understand.
0Comment|Was this review helpful to you?YesNoReport abuse
on 15 December 2014
If you want to be serious about PHP development this book can help you so much.

I am no longer in PHP development but this book was so far the best PHP book I have read.

It is not only helping PHP developers to become better professionals but also delivers essential
content on language agnostic topics like object patterns and best practices.
0Comment|Was this review helpful to you?YesNoReport abuse
on 3 June 2012
I worked with OOP (java and php) for some years, and after a brake I started to work again with PHP, I wanted to improve something in OOP because I forgot some concepts. This book is very interesting, for example, the part of testing with phpunit is very complete. And the part of oriented objects.
0Comment|Was this review helpful to you?YesNoReport abuse
on 7 September 2013
Very good book and author really knows what he's talking about. As a web developer i often use this book to look at the design patters. The author appears arrogant by publishing typos in the code examples. How long would it have taken to test the code snippets? Still, it's a must read!
0Comment| One person found this helpful. Was this review helpful to you?YesNoReport abuse
on 3 April 2013
This book offers a lot of useful advice about using PHP objects and about how to improve programming techniques; something that a lot of similar books tend to skimp over.

The book is an easy read, although the main part of the book, about the patterns themselves, is a little heavy going. I'm relatively new to this idea so found it quite difficult to penetrate some of the technicalities.

One area that I felt was lacking in the book, and which I thought would come into the 'Practice' section, is how to develop with these patterns in mind and how to design a site (or function) by recognising the needs for the pattern to be implemented. I'm left feeling a little quizzical about this, still.
0Comment|Was this review helpful to you?YesNoReport abuse
on 3 February 2015
This makes some very complicated stuff look fairly straightforward. Useful when you want to learn real PHP rather than copy/paste snippets.
0Comment|Was this review helpful to you?YesNoReport abuse
on 7 February 2011
It helped me to think different way before writing my codes. Especially design patterns subject enlightened me very well. The language of it can be simplified for international readers I found it a little bit hard to read.
0Comment|Was this review helpful to you?YesNoReport abuse
on 6 March 2011
The book has arrived very quick and in very good condition. As of the quality of information inside it, it seems to be very good so far as I am still reading it. Would recommend it to any PHP developer, beginner and enthusiast.
0Comment|Was this review helpful to you?YesNoReport abuse

Sponsored Links

  (What is this?)