PHP Objects, Patterns and Practice

3rd Edition

By Matt Zandstra

PHP Objects, Patterns and Practice Cover Image

With PHP Objects, Patterns, and Practice, Third Edition, you'll dig into the details about objects, discover design patterns and principles, and learn how to use enterprise tools to make your projects more successful.

Full Description

  • ISBN13: 978-1-4302-2925-4
  • 536 Pages
  • User Level: Intermediate to Advanced
  • Publication Date: June 6, 2010
  • Available eBook Formats: EPUB, MOBI, PDF
  • Print Book Price: $44.99
  • eBook Price: $31.99
Buy eBook Buy Print Book Add to Wishlist

Related Titles

Full 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

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
Source Code/Downloads

Downloads are available to accompany this book.

Your operating system can likely extract zipped downloads automatically, but you may require software such as WinZip for PC, or StuffIt on a Mac.

Errata

Please Login to submit errata.

On page 74:
This is how it is now:


namespace main;
use com\getinstance\util;
util\Debug::helloWorld();

...

namespace main;
use com\getinstance\util\Debug;
util\Debug::helloWorld();

But the last line of this code should be
Debug::helloWorld();

There is not need of "util\Debug::helloWorld();" since in the "use" there is already the comple path and class.

On page 3185:
Note the page # is the Kindle location (sorry couldn't find a page number.

This is the marklogic code sample, in chapter 11, the interpreter pattern.

In the getKey() method of the abstract Expression class, the first line says

if ( !asset($this->key)) {

maybe it's because it's early in the morning, but I went looking for the PHP asset function before realizing this should say

if (!isset($this->key)) {