Customer Reviews


15 Reviews
5 star:
 (9)
4 star:
 (3)
3 star:
 (2)
2 star:
 (1)
1 star:    (0)
 
 
 
 
 
Average Customer Review
Share your thoughts with other customers
Create your own review
 
 
Only search this product's reviews

The most helpful favorable review
The most helpful critical review


35 of 35 people found the following review helpful
4.0 out of 5 stars Very good book, despite some muddled spots
I've owned PHP Objects, Patterns, and Practice for over a year, and it's still one of those books I go back to. It's a well written, generally well executed book on what constitutes Object Oriented Programming in the PHP5 environment.

First, the good news:

This book is a crash course on OOP design and thought. It borrows heavily from two...
Published on March 20, 2008 by Kevin D A Major

versus
8 of 9 people found the following review helpful
2.0 out of 5 stars Bad on Design Patterns part
I am SCJP and learned design patterns with Java. I have many books about design patterns book with Java, including Head First Design Patterns. But recently I've changed my rout to Web development by choosing PHP. I was excited to grasp a PHP book about design patterns. And I also like the style of Apress (it is very academic for me). The first part of this book is pretty...
Published 23 months ago by Oum Saokosal


‹ Previous | 1 2 | Next ›
Most Helpful First | Newest First

35 of 35 people found the following review helpful
4.0 out of 5 stars Very good book, despite some muddled spots, March 20, 2008
By 
Kevin D A Major (Barrington, NH United States) - See all my reviews
I've owned PHP Objects, Patterns, and Practice for over a year, and it's still one of those books I go back to. It's a well written, generally well executed book on what constitutes Object Oriented Programming in the PHP5 environment.

First, the good news:

This book is a crash course on OOP design and thought. It borrows heavily from two monumentous texts in the field - the Gang of Four's book, and Java Enterprise Patterns - and condences their essences into an easy to swallow form. The basics are all here: how to create well designed classes, how to instantiate objects, etc. There's a hidden gem in the introductory portion of the book: the Reflection API. This API is built into PHP, and gives the coder unparalleled access to the guts of the classes and objects in a given project. It definitely has its uses.

The patterns are all generally useful, with the only exception perhaps being the Interpreter pattern. I'm just not convinced that creating one's own command line interface syntax is necessary, given that PHP projects aren't usually interactive. It seems like something best left to an appendex, or extra web content.

Now, for the bad news:

Some sections of the book, especially some of the code examples, could've used a better editor. Small things, the kinds of things that can trip up inexperienced coders, crop up. Using private properties instead of protected. Using the wrong variable name between examples. That sort of thing.

There's also a lack of a satisfying conclusion, so-to-speak. Zandstra himself claims that generating objects is perhaps the hardest thing to demonstrate. Yet, most of his examples (excepting the patterns late in the book) are canned. Objects and classes exist only to drive the theory behind a pattern home. Few real world examples are given. Admittedly, some patterns are simple to transfer to a real project, but concrete examples of that nature could serve to further cement his point. For example, it's not difficult to see how the Composite pattern would work well for dealing with an XML document, but would there ever be a need for a Visitor object to act on one?

Finally, and in continuation of my last criticism, Zandstra never touches one of the things PHP is used the most for: form handling. Can forms be represented by classes? Could forms be generated by objects (perhaps using a Factory pattern)? What about form validators? Wouldn't the Strategy or Decorator pattern work? Supplementing his online Civilization game and CLI/quiz examples with this would've really put the book over the top.

Still, with that said, PHP Objects, Patterns, and Practice is still a text that gets far more right than wrong. It's definitely a must-buy for those PHP coders looking to write modular code.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


14 of 14 people found the following review helpful
5.0 out of 5 stars Best OO book on PHP ever, March 18, 2008
This is the best book I've read on Object Orientated PHP. This book does a great job of explaining the ins and outs of OO in PHP 5. As a self taught PHP developer of 5 years, I had lots of questions about "am I doing this right", "how should this be done" and the book has answered most of those questions.

I'd recommend the book to those who already have an advanced PHP knowledge but are looking to take their code another step forward by improving it's re-usability. It's also a great read if you want to find out the power that PHP 5 has over PHP 4.

Note: this book doesn't contain code that you can use. It teaches you the principles that you should use in your own projects.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


10 of 10 people found the following review helpful
4.0 out of 5 stars Overall a good investment, November 17, 2008
By 
Michael Ekoka (Montreal, Qc Canada) - See all my reviews
(REAL NAME)   
It's been about a year and a half since I've read this, I have the first edition, but I think most of what I write is still relevant for this second one.

At the moment, very few php books come close in trying to actually present the language as a real contender for serious and professional web development. This book attempts just that.

PHP has come a long way since its inception, but the teaching material has not really caught up and the community is still pestered with bad code, architecture and practice. This book is an eye opener as it presents php for what it can be: a convenient and flexible tool that, in the right hands, can tough up and allow a programmer to get work done efficiently. It's not to say that php can do everything, but before you blame it as the root of all evil, you should definitely understand how you, the programmer, can work at improving the quality of your code. This text offers some insight into tried and true practices, usually well established in other more mature communities.

There are 3 parts:

The Objects part is a nice introduction to many goodies in the new PHP5 object model (the whole thing is php5 centric).

Some of the topics covered in the section matter more than others imo, since in your practice you'll encounter and will definitely draw some values from them. So pay particular attention to: Autoloading, Exception handling, magic methods, namespaces, reflection.

Because PHP is still a language in search for an identity, it borrows features, coding styles and development philosophy from other languages. Despite the fact that the two are fundamentally very different, Java has heavily influenced PHP's OO design and syntax. However, some of the PHP reimplementation just ended up being "simili" stuff, rather than the real thing. That is, it has the Java flavor, but doesn't actually carry any caffeine. Unfortunately, the book doesn't dig into those details and just serves the Kool-Aid as is.

Another complaint is that you are shown many tools and given a description of how they work, but there is little depth as to when to actually use them. Java and Python programmers borrowing PHP for a project might have an easier time translating this knowledge into actual practice, since their community would have likely previously exposed them to situations these tools were meant for.

If I had to pick one particular topic that I felt was missing from the Objects section, it would be an intro to the SPL. Look for it.

[aside]
If you would allow me some personal and opinionated advices (be forewarned that a lot of these go against the current dogma in PHP):
- private/protected/public: it's definitely useful to understand the _idea_ behind having a public and a private programming interface, but it's a bit of a fallacy to enforce this with actual language constructs in a dynamic technology like PHP, since it doesn't actually provide much benefits to the interpreter. Who are we then "protecting" the code from exactly, the programmer? When other concepts like inheritance get involved, things get even more cumbersome, because PHP is missing some features that allow a technology like Java to get away with it all (method overloading anyone?). An alternative approach is to leave everything public and then follow the widely adopted _convention_ to prefix what is considered private with an underscore. Programmers using your API will get a hint that the $_purifiedData property was probably not meant to be directly accessed, but in case they decide to transgress that rule, they can. If you still insist on enforcing visibility though, then only use the protected and public keywords, forget private altogether.
- inheritance: learn how it works, but most importantly, learn when to avoid it and remember to strive for "Composition over Inheritance" (see Patterns section).
- interfaces: Learn about type-checking and type-hinting and use interfaces for that purpose specifically. You can declare constants within your interfaces, but I'd recommend against also declaring methods in them. It will only constrain your APIs, since PHP doesn't allow method overloading like Java would (this is one thing many PHP so-called experts are completely oblivious about when they merrily sprinkle their code with interfaces). Another route altogether would be to simply stop relying on interfaces and type-hinting and adopt 'duck-typing', an approach more natural to dynamically-typed languages such as Python, Ruby and I dare to say, PHP.
[/aside]

The next section of the book is on Patterns. It's not so much about PHP than it is an attempt at making a less crappy programmer out of YOU. If you're relatively new to programming and you've chosen PHP to make your first steps, please read this section of the book, for the sake of minimizing the damage you certainly will do. This is an intro to better code organization and to the world of design patterns as they can be applied to php. If you've heard of such things as Singleton, Observer, Registry, Controller, MVC and are still scratching your head, this could apply to you to.

The Practice section was a bit of a let down. If the author cares for some suggestions:
- forget CVS: there are currently a number of popular and very good open source SCMs, Git and Mercurial currently leading the pack. At the very least, teach the increasingly outdated SVN, but this book would actually gain some value if you only just mentioned the concept of revision control, without actually naming CVS.
- forget PEAR: instead have a chapter on frameworks, which nicely ties up with what the book tries to teach.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


8 of 9 people found the following review helpful
2.0 out of 5 stars Bad on Design Patterns part, June 15, 2010
By 
Oum Saokosal (Phnom Penh, Cambodia) - See all my reviews
(REAL NAME)   
This review is from: PHP Objects, Patterns, and Practice (Kindle Edition)
I am SCJP and learned design patterns with Java. I have many books about design patterns book with Java, including Head First Design Patterns. But recently I've changed my rout to Web development by choosing PHP. I was excited to grasp a PHP book about design patterns. And I also like the style of Apress (it is very academic for me). The first part of this book is pretty good, well-organized, informative. I've learned new things from this book. But when I got to Patterns part, my head got ache. I took 3 painkiller pills this week. His explanation was ever more complicated. He followed the style of GOF but a lot of times the explanation in the implementation part was cut off in the middle, and moved to the consequence. I was like 'uhh.... (@_@) wtf.. 8(>_<)8 what is this?!!! where is the rest?!! ' Sometimes the code was not completed, there were usually no client codes, sometimes the UML diagram was not completed and misspelled. You all know that design patterns is a very tough subject and complicated so you need a book with the easy-to-understand explanation. So I recommend you to read Head First Design Patterns instead since the code of Java and PHP 5/6 are not big different. Also I found Head First was quite funny to read. It is easy to follow. You can see a lot of explanations, augments and consequences of any pattern. For those who don't want to waste money, think again.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5 of 5 people found the following review helpful
5.0 out of 5 stars One of the few solid professional PHP books., February 20, 2009
By 
Steve-o (Fairfax, VA United States) - See all my reviews
One of the only truly professional PHP books out on the market that we recommend at Sevenforty [...] to other developers. Most PHP books are written by authors with very little professional development experience and are filled with horrific coding practices and bad "cut and paste" examples. Matt's book breaks that mold with solid object-oriented examples, logical explanations, plenty of design pattern examples and shows PHP right at home with the MVC design pattern.

This book is not for folks just starting out in programming. It takes a prior understanding of how design patterns fit into professional web development. However, for those developers who want to make the transition from amateur PHP coder to professional, enterprise level PHP developer, this book is the starting point.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


12 of 16 people found the following review helpful
5.0 out of 5 stars Great Book!, February 22, 2008
I've personally read about 100+ IT-related books, ranging from Certification Crams, Networking, Programming, and even computer repair. I've developed with PHP for almost 7 years now, having over 10 years of development language experience overall with other languages. What I'm about to say may surprise some, some may even find it hard to believe, and even more will absolutely disregard it as truth. On the flip side, what I am about to say may intrigue you, have you yearning to learn more, or even have you ready to go buy the book at this very moment. Either way that's your opinion, your thoughts and ultimately your decision. I'm simply telling it how it is, while being as truthful as I possibly can be.
PHP Objects, Patterns, and Practice is by far, the most thought out, well planned and pleasant books I've read on any subject, period. Most technical books leave you feeling like the author was some sort of robot from Mars, sent to Earth intent upon teaching humans how to write code. This book takes a totally different approach, an approach that I could only dream of taking to explain advanced concepts that Mr. Zandstra explains.
The book begins with giving the reader a "blast to the past" look at how PHP started out, how it evolved and what we should be expecting to see in the future. It explains how OOP came into being, how it became much more than the author's could ever dream, and how it eventually became the selling point for PHP. After giving you a brief history lesson, it finally starts into the actual technical sections. Once again, they follow the idea of showing the reader where PHP went wrong, and then finally how they made up for it by doing it the way it was supposed to have been done.
The first three chapters explain the above in extreme and perfect detail. The following chapters begin your development cycle by first bringing the reader up to speed on OOP basics followed by advanced topics that help mold your mind around working in PHP's brand new OOP environment. The chapters after basically keep building on top of that foundation, zeroing in on trouble areas followed by intelligent solutions to each problem. Every single page I read, I learned something new. Every single exercise, I said to myself, wow...I can't believe I've made it this far without knowing this.
What makes this book so appealing to me is that it's not meant for the newbie as almost every book you find at Barnes and Nobel will be. Instead, it's directed at the seasonal developer, the developer who has already been coding in PHP for 4+ years, developed long enough to know what PHP can and cannot do. It's also for the developer who has longed for a book that gives us incentive for moving to 5 and away from our trusty stable PHP 4 release.
Matt uses such an impressive means of explaining how things work, that I probably have learned more in this 470 page book (yes, I even read the Appendixes, which is an honest-to-God first for me) than I've learned in any 1000+ page book. Every time I met a new chapter, I found myself ready to open the trusty laptop and try it out instead of skipping about 10 chapters to finally get to a place that actually covered something meaningful.
Matt Zandstra, my hat is off to you. This book was everything I have been looking for in a PHP book.

-Jonathon Hibbard 02/15/08
Application Developer, HSR Business to Business
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


1 of 1 people found the following review helpful
5.0 out of 5 stars Interesting and easy to read PHP OO primer, July 14, 2008
By 
yoyodyne (melbourne, fl) - See all my reviews
I have experience in a variety of object oriented (OO) languages, but not PHP. This book has helped me understand how PHP supports objects and some of the typical design patterns you will see in OO PHP.
Although it is written with PPH5, it even covers some aspects of OO in PHP4.
It is easy to read, interesting and contains good code examples.
This isn't a PHP Beginners book, although I'm not fully familiar with PHP and haven't had a hard time reading this book, probably because of my OO background and basic PHP knowledge. Still, if you just need a PHP beginners book, this isn't the one.
It is a great book if you want to learn OO PHP or even just some OO principles in general. Very glad I picked this book up.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5 of 7 people found the following review helpful
3.0 out of 5 stars Great book but..., February 27, 2008
This is a really great book for advanced developers who whant learn abount php5 OOP technique; it explain very well how objects work and how to use the most famous patterns but it fails in third section: "The Practice".

CVS, PHPDoc and Phing, for me, are not enought for a good "Practice".

The entire book use too much simplistic examples, and so, is very difficult, for a beginner, to use all book concepts in real world.

I hope that in the next edition, Matt will fill this gap.

Bye From Italy
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5.0 out of 5 stars Object-Oriented PHP, December 5, 2010
By 
C. Brown "book master" (Florida United States) - See all my reviews
(REAL NAME)   
Amazon Verified Purchase(What's this?)
This book is a good read on PHP, and its improved Object-Oriented features. It should be a good resource for the reader interested in learning about some of the new features of PHP ver. 5, and practices associated with these new features.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5.0 out of 5 stars Great Read, July 20, 2010
I am a full time PHP programmer and I love this book.

The author's writing style is so lucid and "real-life" that I couldnt put this book down.

I have read it, and am re reading it.

Easy to understand, but difficult to remember all the nuances of OOP in PHP.

very useful to have laying around in case a quick reference is required.

No complaints, five stars.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


‹ Previous | 1 2 | Next ›
Most Helpful First | Newest First

This product

PHP Objects, Patterns, and Practice
$35.99 $19.79
Add to wishlist See buying options