Amazon.com Customer Reviews
Almost Perfect - Review written on January 21, 2008
Rating: 4 out of 5
Zandstra has created a masterful overview of OO for PHP and provides the patterns to go with it. However, the code presented in a number of sections is far from self-documenting, particularly the Enterprise patterns section. A really great additional feature would have been to tie up, broadly, how the patterns interact with one another at various layers of enterprise design; as the book is written, it becomes hard to keep track of all of the objects Zandstra has created over the chapter, and many times he generates a new version of an old object without presenting a full overview of the newer version, making it difficult to see what his revision has actually done. A good example of this is during the ApplicationController pattern, when he rewrites the FrontController object.
I appreciate the practical examples presented throughout, however, and the sections on UML, OO and Practice will very definitely help novice to intermediate designers.
Nice succinct treatment of PHP OOP - Review written on May 23, 2007
Rating: 4 out of 5
3 customers found this review helpful.
This book is a great theory book for intermediate to advanced PHP. It skips over beginning PHP syntax and dives straight into OOP. The book is divided into 3 main parts - Object-Oriented Programming, Design Patterns, and Practice.
The OOP part of the book is a thorough covering of OOP from a PHP angle. It spends a little time discussing procedural vs. OO code, but assumes the reader is already convinced of the merits of OOP. It covers all the most important PHP OO ground quickly, but still explains each part in good detail - from the basics of Classes, Objects, and Inheritance up to and including OO design decisions, Polymorphism, and UML. This part of the book is, IMO, worth the purchase price for the succinct yet thorough coverage of PHP-slanted Object-Oriented Programming.
Part 2 of the book is a bit more verbose, as the subject content demands. It introduces the idea of Design Patterns first and goes over some design pattern principles. Then it jumps into the low-level design patterns for handling objects and their relationships, and representing tasks as objects. The last chapter in this part is called "Enterprise Patterns" but it somehow fails to adequately cover the King of Compound Design Patterns - MVC. The "Enterprise Patterns" are instead a PHP translation of a few J2EE design patterns. While this part of the book is very useful for solid PHP programmers beginning to approach Design Patterns, it is theory-heavy and shouldn't be used as a reference point for implementation of the patterns.
The last part of the book covers some useful PHP tools like PEAR, phpDocumentor, CVS and Phing. While these are all good tools, I was disappointed not to see Subversion or PHPUnit covered in more detail.
Each part of the book could be read independently of the others. It is a great theory book, but its ad-hoc and highly-specific code examples make it less useful as a reference. It's easy-to-read and concise style through-out mean you can simply read thru it to quickly and easily learn the theory without a computer on-hand, which is very helpful, too.
Serious Stuff on PHP OOP - Review written on June 17, 2006
Rating: 5 out of 5
21 customers found this review helpful.
I liked this book. It is probably the first I have run across that treats PHP as a serious development environment, addressing it to enterprise level tasks. That said, let me add a cautionary warning, this book is not for the novice to OOP.
Mr. Zandstra approaches his task by dividing the content into three sections: 1) Objects - covering various basic and advanced concepts in OOP as they apply to PHP, from polymorphism and encapsulation to abstracts, error handling and interfaces, 2) Patterns - using a few sources (including the 'Gang of Four') he covers composition, object generation, tasks and layers among other topics, 3) Practices - offering a little advice on how and why to use patterns and standards, as well as some coverage of PEAR, documenting and version control.
From a practical standpoint, I found the book interesting, but somewhat overwhelming. Let me try to clarify that a little. This book is targeted at enterprise level development, meaning serious business level coding/development. Most of my work in PHP so far, while it makes use of OOP, is relatively small scale (15-20 classes ranging from 200-1500 lines each in my most complex site). While I can see the logic in the patterns and practices that Zandstra writes about, the overall content is overkill for my scale of project. Now that isn't to say that I found the book useless, there are many of the concepts that the author discusses that will find their way into my design and code; I just won't be doing a wholesale pattern refactoring of my code (a viewpoint I get the feeling the author would agree with).
If you are a professional developer, I would recommend this book as a good read and part of your PHP reference library. If you are not an enterprise level developer and are just looking for sample code to help solve or implement solutions I would recommend PHP 5 Recipes (Apress).
classy ... and timely - Review written on August 17, 2005
Rating: 5 out of 5
6 customers found this review helpful, 2 did not.
ok; so, you've been reading object-oriented theory (and syntax etc.) for ages. But have all those other books and articles still left you wondering how to put it all together ... and actually implement something? Well, this is THE book ... that shows you how to transition from theory to practice - the CORRECT way(s) i.e. according to the "best practices" of our time.
It's written very clearly and succinctly (which is more than I can say for most other writings on the subjects of objects, patterns & practices). I've seen whole books written (never mind LONG articles) on patterns, that the author covers in a few pages. It takes someone gifted to do that; it is only when one has a commanding and comprehensive knowledge of a subject that one can summarize it in a few words ... and provide examples that leave you thinking ... "ok, I can do that, too (now, that I "get it"). That's the feeling, you're left with ... after this.
Full object orientation has been awhile in coming to PHP ... and this book couldn't have arrived at a better time. I'm delighted, made much more confident ... and inspired by it.
GET IT ... or you will be the loser for not having done so!
The Next Step for the Serious PHP Programmer - Review written on May 05, 2005
Rating: 5 out of 5
11 customers found this review helpful.
I got this book thinking, "Hey, this might help me get a leg up on that new PHP 5 OOP stuff." That it did.
However, this book accomplishes much more than that. Zandstra sets himself a several goals and meets them all quite well. These include: providing an understanding of classes, objects, and interfaces in PHP 5; presenting a numbers of useful design patterns as expressed in PHP 5 terms; giving the reader information about and insight into advanced development tools and methodologies for large-scale PHP 5 projects.
A particularly valuable service provided by the author lies in the fact that there is a real dearth of material on design patterns for PHP developers, most of the literature on this subject being written with the assumption that the reader is highly proficient in Java or C++ (or possibly Smalltalk). This is all well and good if your background includes lots of work or study in one or more of these; however, for many Web developers, PHP is the primary and sometimes only programming language (and for many more, their only previous experience is with other scripting languages such as Perl, Python, JavaScript, VBScript, etc.). Zandstra goes to the effort of translating many of the classic "Gang of Four" design patterns into PHP 5 code and thereby makes accessible a realm that was heretofore unknown to many PHP developers.
If this were all that the book covered, it would be useful in and of itself for this alone. But the author also gives us a good, thorough grounding in both the mechanics of PHP 5's new object model and (especially important!) the rationale behind it. He also provides a nice tutorial on UML modeling along the way, and finishes up with a look at some current development tools like Phing and CVS. There are plenty of helpful and useful examples along the way.
I give this book 5 stars for having really helped me wrap my head round some advanced OO programming and design concepts. I've already got loads of use from it; my copy is about two months old, and it's already getting dog-eared. It's also a very enjoyable read, and a real cut above most of the "How To Program In ..." sorts of books. This is the perfect book for someone with some experience with writing PHP code who's looking to move up to the next level - creating real, scalable, enterprise-level PHP applications.
A great introduction to object-oriented PHP - Review written on March 09, 2005
Rating: 4 out of 5
29 customers found this review helpful, 2 did not.
I haven't read a book on PHP in ages. In fact, I haven't programmed in PHP since 2001. With this in mind, I can say that Matt Zandstra's "PHP 5 Objects, Patterns, and Practice" was a very approachable introduction to what the latest version of the PHP platform has to offer to an OO developer from the Java scene.
The book is split to three main sections: objects, patterns, practice. The first section runs through the new object-oriented features of PHP 5, the second sections introduces design patterns and includes a catalog of some of the more common patterns from the original Gang of Four patterns as well as from "Core J2EE Patterns". The third section is a set of tutorials on tools and assets that a modern day PHP developer really should know about and make use of: the PEAR installation tool, PhpDocumentor, and the Phing build tool. The author also squeezed in a bit about the PHPUnit2 library for unit testing PHP code which I especially appreciated.
The design patterns catalog is far from comprehensive, covering only a small subset of published design patterns in the Java/.NET camps, but serves its purpose alright. Every included pattern is illustrated with an example that the author has crafted for the PHP context - in other words, these are not just direct ports from their Java equivalents, for example.
While being an easy read, Zandstra's introduction to the object-oriented features is, I believe, perfectly adequate to get started with object-oriented PHP programming. Combined with the discussion about design patterns, the book feels like a valuable asset for getting up to speed after a break. A more up-to-date PHP developer might find the information a bit lacking but for someone new to PHP 5's object-oriented features, this is a good package to get started with.
Great book IF you already know some PHP - Review written on February 09, 2005
Rating: 5 out of 5
7 customers found this review helpful, 2 did not.
The author of this book assumes a basic understanding of the PHP language and focuses on how to take advantage of the new features of PHP5. The book includes best practices, tools, and principles on how best to write, document and implement a project.
The three primary divisions of the book follow along with the title and are sequenced as Objects, Patterns, and Practice. The Objects section covers the history of PHP and how it evolved to include a focus on object-oriented programming. This section contains some of the more basic information in the book including the principles behind objects, classes and inheritance. The section on Patterns examines problems of software design and ways to approach and resolve these problems. In this section the reader learns basic design principles that should be implemented on all projects to make them easier to troubleshoot or expand on later. The last section covers the practices and tools that can be used to correctly manage a project. The focus is on managing your code, managing your project, tracking bugs, collaboration between programmers, and making the project easy to install. It includes a section on Concurrent Versions System (CVS) which allows multiple programmers to work on the same code without overwriting each other's work.
Although it assumes some knowledge of PHP programming it does not assume any knowledge of object-oriented programming and that appears to be one of the primary purposes of the book - to take PHP4 programmers and teach them to take advantage of the abilities of PHP5. This is not to say that you can't get a lot of value from the book without prior knowledge of PHP. If you have programmed before and have a basic PHP syntax reference guide available then this book will still be a valuable read. PHP 5 Objects, Patterns, and Practice is highly recommended for PHP programmers making the move to PHP5 and PHP5 programmers that need a handle on best practices.
2 key ideas in programming - Review written on January 20, 2005
Rating: 4 out of 5
9 customers found this review helpful, 2 did not.
As languages which were not originally object oriented grow in popularity, there is sometimes a trend to upgrade them, by adding in this functionality. C++ can be regarded as an upgrade of C, in this respect. Or how Visual Basic now as VB.NET has quite impressive OO features. So Zandstra's book attests to this trend and to the popularity of PHP. It describes how the OO enhancements in PHP 4 were extended into version 5. You are shown how to use objects to the full extent allowed in PHP 5.
The book is also aimed at a reader who might never have formally learnt to use objects or design patterns. In the last 15 years, these have been two very important ideas in programming, independent of the languages used. Which gives us another merit of the book. You are not just learning PHP 5, though that may be good in itself. By understanding and using the book's ideas, you should be able to apply these in other languages. A valuable increase of your skill set and hence marketability.
You should also read carefully the section on bad practices. Sometimes, just being able to avoid these in your code may be enough to produce a successful program.