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

Buy New

or
Sign in to turn on 1-Click ordering.
or
Amazon Prime free trial required. Sign up when you check out. Learn more
Buy Used
Used - Like New See details
Price: £19.43

or
Sign in to turn on 1-Click ordering.
 
   
More Buying Choices
Have one to sell? Sell yours here
or
Get a £10.20 Amazon.co.uk Gift Card
PHP Objects, Patterns and Practice 3rd Edition (Expert's Voice in Open Source)
 
 
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 3rd Edition (Expert's Voice in Open Source) [Paperback]

Matt Zandstra
4.0 out of 5 stars  See all reviews (5 customer reviews)
RRP: £35.49
Price: £27.68 & this item Delivered FREE in the UK with Super Saver Delivery. See details and conditions
You Save: £7.81 (22%)
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.
Dispatched from and sold by Amazon.co.uk. Gift-wrap available.
Want guaranteed delivery by Saturday, June 2? Choose Express delivery at checkout. See Details

Formats

Amazon Price New from Used from
Kindle Edition £18.94  
Paperback £27.68  
Trade In this Item for up to £10.20
Get an extra £5 when you trade in books worth £10 or more until June 30, 2012. Trade in PHP Objects, Patterns and Practice 3rd Edition (Expert's Voice in Open Source) for an Amazon.co.uk gift card of up to £10.20, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Find more products eligible for trade-in.

Frequently Bought Together

Customers buy this book with Essential PHP Security £14.94

PHP Objects, Patterns and Practice 3rd Edition (Expert's Voice in Open Source) + Essential PHP Security
Price For Both: £42.62

Show availability and delivery details

  • This item: PHP Objects, Patterns and Practice 3rd Edition (Expert's Voice in Open Source)

    In stock.
    Dispatched from and sold by Amazon.co.uk.
    This item Delivered FREE in the UK with Super Saver Delivery. See details and conditions

  • Essential PHP Security

    In stock.
    Dispatched from and sold by Amazon.co.uk.
    This item Delivered FREE in the UK with Super Saver Delivery. See details and conditions


Customers Who Bought This Item Also Bought


Product details

  • Paperback: 515 pages
  • Publisher: APRESS; 3rd Revised edition edition (1 Jun 2010)
  • Language English
  • ISBN-10: 143022925X
  • ISBN-13: 978-1430229254
  • Product Dimensions: 19 x 23.1 x 2.8 cm
  • Average Customer Review: 4.0 out of 5 stars  See all reviews (5 customer reviews)
  • Amazon Bestsellers Rank: 32,748 in Books (See Top 100 in Books)

More About the Author

Matt Zandstra
Discover books, learn about writers, and more.

Visit Amazon's Matt Zandstra Page

Product Description

Product Description

This book takes you beyond the PHP basics to the enterprise development practices used by professional programmers. Updated for PHP 5.3 with new sections on closures, namespaces, and continuous integration, this edition will teach you about object features such as abstract classes, reflection, interfaces, and error handling. You’ll also discover object tools to help you learn more about your classes, objects, and methods.

Then you’ll move into design patterns and the principles that make patterns powerful. You’ll learn both classic design patterns and enterprise and database patterns with easy-to-follow examples.

Finally, you’ll discover how to put it all into practice to help turn great code into successful projects. You’ll learn how to manage multiple developers with Subversion, and how to build and install using Phing and PEAR. You’ll also learn strategies for automated testing and building, including continuous integration.

Taken together, these three elements—object fundamentals, design principles, and best practices—will help you develop elegant and rock-solid systems.

What you’ll learn

  • Learn to work with object fundamentals: writing classes and methods, instantiating objects, and creating powerful class hierarchies using inheritance.
  • Master advanced object-oriented features, including static methods and properties.
  • Learn how to manage error conditions with exceptions, and create abstract classes and interfaces.
  • Understand and use design principles to deploy objects and classes effectively in your projects.
  • Learn about design patterns, their purpose and structure, and the underlying principles that govern them.
  • Discover a set of powerful patterns that you can deploy in your own projects.
  • Learn about the tools and practices that can guarantee a successful project including unit testing; version control; build, installation, and package management; and continuous integration.

Who this book is for

This book is suitable for anyone with at least a basic knowledge of PHP who wants to use its object-oriented features in their projects.

Those who already know their interfaces from their abstracts may well still find it hard to use these features in their projects. These users will benefit from the book’s emphasis on design. They will learn how to choose and combine the participants of a system, how to read design patterns, and how to use them in their code.

Finally, this book is for PHP coders who want to learn about the practices and tools (version control, testing, continuous integration, etc.) that can make projects safe, elegant, and stable.

Table of Contents

  1. PHP: Design and Management
  2. PHP and Objects
  3. Object Basics
  4. Advanced Features
  5. Object Tools
  6. Objects and Design
  7. What Are Design Patterns? Why Use Them?
  8. Some Pattern Principles
  9. Generating Objects
  10. Patterns for Flexible Object Programming
  11. Performing and Representing Tasks
  12. Enterprise Patterns
  13. Database Patterns
  14. Good (and Bad) Practice
  15. An Introduction to PEAR and Pyrus
  16. Generating Documentation with phpDocumentor
  17. Version Control with Subversion
  18. Testing with PHPUnit
  19. Automated Build with Phing
  20. Continuous Integration
  21. Objects, Patterns, Practice

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 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.

Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index
Search inside this book:

Tags Customers Associate with This Product

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

Your tags: Add your first tag
 

What Other Items Do Customers Buy After Viewing This Item?


Customer Reviews

Most Helpful Customer Reviews
8 of 8 people found the following review helpful
By Pete171
Format: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.
Was this review helpful to you?
Format:Paperback
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.
Comment | 
Was this review helpful to you?
1 of 2 people found the following review helpful
Format:Paperback
I have been developing in PHP for 13 years, but for the last four of them I got "disconnected", doing more things with other languages, and I suddenly found everyone was talking OOP, patterns, Name Spacing, Frameworks, UnitTesting, ORMs and some other staff which I surely knew about but hardly ever used. (Note that you don't really need any experience in these subjects for this book, although you do need some programming experience).

I had some experience with OOP, mainly with some experimental Java coding, a few PHP libraries and Javascript that I use daily, and I thought I knew the basics and a bit more pretty well. I was wrong. OOP is not just wrapping your functions into classes! You really have to change the way you think about code and programming, specially when designing your own systems. This book will try to lead you through that path, and it did it well for me.

The patterns occupy most of the pages, probably half of it, and they are also the most dense. I read them first in a quick fashion and later took the simplest patterns and tried them myself (singleton, composite and visitor and decorator where the ones that really taught me the way). It is of course the best way to retain what you have just read.

The rest of the book is at least as good and interesting as the patterns section. You won't find detailed literature about any of the subjects but enough to get you going. I am now using UnitTests, PHPDocumentor, Git and name spacing whenever I can. And of course, I installed the latest PHP 5.3, which you should have available to try the samples.

All the book is nicely written without unneeded academic prose (you don't really feel you are studying), and the code samples are very concise and easy to follow. So far, probably the best PHP book I have read.
Comment | 
Was this review helpful to you?

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
 

Search Customer Discussions
Search all Amazon discussions
   


Listmania!

Create a Listmania! list

Look for similar items by category


Look for similar items by subject


Feedback


Amazon.co.uk Privacy Statement Amazon.co.uk Delivery Information Amazon.co.uk Returns & Exchanges