PHP Objects, Patterns, and Practice and over one million other books are available for Amazon Kindle. Learn more


or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Sell Back Your Copy
For a $2.62 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
PHP Objects, Patterns, and Practice
 
 
Start reading PHP Objects, Patterns, and Practice on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

PHP Objects, Patterns, and Practice [Paperback]

Matt Zandstra (Author)
4.3 out of 5 stars  See all reviews (15 customer reviews)

List Price: $44.99
Price: $29.54 & this item ships for FREE with Super Saver Shipping. Details
You Save: $15.45 (34%)
  Special Offers Available
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Want it delivered Tuesday, May 29? Choose One-Day Shipping at checkout. Details
Textbook Student FREE Two-Day Shipping for students on millions of items. Learn more

Formats

Amazon Price New from Used from
Kindle Edition $19.79  
Paperback $29.54  
Sell Back Your Copy for $2.62
Whether you bought it on Amazon or somewhere else, you can sell it back through our Book Trade-In Program at the current price of $2.62.
Used Price$17.69
Trade-in Price$2.62
Price after
Trade-in
$15.07
There is a newer edition of this item:
PHP Objects, Patterns and Practice (Expert's Voice in Open Source) PHP Objects, Patterns and Practice (Expert's Voice in Open Source) 4.1 out of 5 stars (7)
$29.69
In Stock.

Book Description

December 20, 2007 1590599098 978-1590599099 2

Backed by a tireless development community, PHP has been a model of language evolution over its 10+ year history. Borne from a contract developer’s pet project, these days you’ll find PHP powering many of the world’s largest web sites, including Yahoo!, Digg, EA Games, and Lycos.

PHP Objects, Patterns, and Practice, Second Edition shows you how to meld the power of PHP with the sound enterprise development techniques embraced by professional programmers. Going well beyond the basics of object–oriented development, you’ll learn about advanced topics such as working with static methods and properties, abstract classes, interfaces, design patterns, exception handling, and more. You’ll also be exposed to key tools such as PEAR, CVS, Phing, and phpDocumentor.

What you’ll learn

  • Write solid, maintainable code by embracing object–oriented techniques and design patterns
  • Create detailed, versatile documentation using the powerful phpDocumentor automated documentation system
  • Gain new flexibility during the development process by managing your code within a CVS repository and using the Phing build system
  • Capitalize upon the quality code of others by using the PEAR package management solution

Who this book is for

PHP developers seeking to embrace sound development techniques such as object–orientation, design patterns, testing, and documentation.


Special Offers and Product Promotions

  • Buy $50 in qualifying physical textbooks, get $2 in Amazon MP3 Credit. Here's how (restrictions apply)

Frequently Bought Together

Customers buy this book with PHP Object-Oriented Solutions $22.27

PHP Objects, Patterns, and Practice + PHP Object-Oriented Solutions
  • This item: PHP Objects, Patterns, and Practice

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • PHP Object-Oriented Solutions

    In Stock.
    Ships from and sold by Amazon.com.
    Eligible for FREE Super Saver Shipping on orders over $25. Details



Editorial Reviews

About the Author

Matt Zandstra has worked as a Web programmer, consultant and writer for a decade. He has been an object evangelist for most of that time. Matt is the author of SAMS Teach Yourself PHP in 24 Hours (three editions), and contributed to DHTML Unleashed. He has written articles for Linux Magazine and Zend.com. Matt works primarily with PHP, Perl and Java, building online applications. He is an engineer at Yahoo! in London.

Matt lives in Brighton, U.K. with his wife, Louise, and two children, Holly and Jake. Because it has been so long since he has had any spare time, he only distantly recollects that he runs regularly to offset the effects of his liking for pubs and cafes, and for sitting around reading and writing fiction. Learn more on Matt's website, getInstance.com.


Product Details

  • Paperback: 487 pages
  • Publisher: Apress; 2 edition (December 20, 2007)
  • Language: English
  • ISBN-10: 1590599098
  • ISBN-13: 978-1590599099
  • Product Dimensions: 9.2 x 7.1 x 1 inches
  • Shipping Weight: 1.8 pounds (View shipping rates and policies)
  • Average Customer Review: 4.3 out of 5 stars  See all reviews (15 customer reviews)
  • Amazon Best Sellers Rank: #559,340 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Most Helpful Customer Reviews
35 of 35 people found the following review helpful
Format:Paperback
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.
Was this review helpful to you?
14 of 14 people found the following review helpful
Best OO book on PHP ever March 18, 2008
By Stats
Format:Paperback
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.
Comment | 
Was this review helpful to you?
10 of 10 people found the following review helpful
Overall a good investment November 17, 2008
Format:Paperback
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.
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
his book is a must-read for PHP developers
The book starts a bit silly. If I'm reading a book about object oriented PHP development, is because I WANT to do OOP with PHP, you don't have to sell it to me or tell me that... Read more
Published 16 months ago by Kartones
Object-Oriented PHP
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... Read more
Published 17 months ago by C. Brown
Great Read
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. Read more
Published 22 months ago by Samir Patel
A very complete good practice book
Not only a good book for learning how to use objects with php, but also a cookbook with a lot of good ideas and patterns for solve pratical problems with web applications... Read more
Published 23 months ago by Roberto
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. Read more
Published 23 months ago by Oum Saokosal
very well-written
just want to echo a comment made by other reviewers, which is that this is an exceptionally well-written book (measured by the standards of typical computer programming books). Read more
Published on January 24, 2010 by Jake Stayman
Excellent Book For Advanced PHP
This is a very advanced book on PHP. It assumes a solid understanding of object-oriented PHP programming, although it does offer a basic review of OOP practices. Read more
Published on October 25, 2009 by Timothy Piele
One of the few solid professional PHP books.
One of the only truly professional PHP books out on the market that we recommend at Sevenforty [...] to other developers. Read more
Published on February 20, 2009 by Steve-o
Buen libro de POO y PHP (Good OOP PHP book)
Explica con palabras sencillas los conceptos de programacion orientada a objetos (POO) y como aplicarlos en PHP, sin embargo pienso que el autor aveces se extiende demasiado para... Read more
Published on October 6, 2008 by J. R. Perez
Interesting and easy to read PHP OO primer
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... Read more
Published on July 14, 2008 by yoyodyne
Search Customer Reviews
Only search this product's reviews

Inside This Book (learn more)
Key Phrases - Statistically Improbable Phrases (SIPs): (learn more)
data mapper, page controller, identity map, reflection class, template method, template view, quizobjects cvs, static function instance, cvsusers group, class type hinting, client coder, public function write, function setld, interceptor methods, mapper class, static function getlnstance, resources cvs, fileset element, pear package, enterprise patterns, clone keyword, cvs tag, pear install, command cvs, database patterns
Key Phrases - Capitalized Phrases (CAPs): (learn more)
Abstract Factory, Domain Model, Gang of Four, Martin Fowler, Factory Method, View Helper, String Figure, Unit of Work, Cost Strategy, Patterns of Enterprise Application Architecture, The Observer, Selection Factory, Framework Constraint, Sebastian Bergmann, Addison-Wesley Professional, Coldharbour Lane, Borsetshire Open License, Done Figure, Analyzing Dialekt, Domain Object Factory, Adding Channel, Equals Expression, Lazy Load, Element Attribute Required Description, The Zend Engine
Browse Sample Pages:
Front Cover | Table of Contents | First Pages | Index | Surprise Me!
Search Inside This Book:

What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 
(9)
(5)
(4)

Your tags: Add your first tag
 

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums



So You'd Like to...


Create a guide


Look for Similar Items by Category


Look for Similar Items by Subject