Skip to Content
Professional PHP Design Patterns
book

Professional PHP Design Patterns

by Aaron Saray
August 2009
Intermediate to advanced
281 pages
6h 50m
English
Wrox
Content preview from Professional PHP Design Patterns

9.1. Problem and Solution

As PHP continues to grow and evolve as a language, its features continue to provide easier avenues for development, using proven Design Patterns. One feature of PHP that has been particularly helpful is the ability to create new instances of classes based on the content of a variable. This dynamic approach to object instantiation is one of the building blocks of my approach to the Factory Design Pattern in PHP.

Classes based on the Factory Design Pattern help reduce conditionally based complexity in the main code stream. Throughout applications, objects are called in many different ways. Changing just one thing about an object's creation can cause ripples through the rest of the application. Think of instantiating one of five objects to perform some sort of functionality. One method would be to create a conditional to determine which object to instantiate. This might be a complex if/else statement or a switch/case statement. This functionality can be used in many places in the application but can cause code duplication. Then, add a sixth object to the mix or change the name of one of the existing five, and all instances of this code need to be modified and tested again. The Factory Design Pattern helps eliminate this headache by providing a simple interface to create any of these objects. The way the Factory object is called stays the same no matter if objects are changed or other objects are added.

A practical example of this can be observed when showing ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Design Patterns in PHP and Laravel

Design Patterns in PHP and Laravel

Kelt Dockins
Magento 2 Theme Design - Second Edition

Magento 2 Theme Design - Second Edition

Fernando J Miguel, Richard Carter
PHP 7: Real World Application Development

PHP 7: Real World Application Development

Doug Bierer, Altaf Hussain, Branko Ajzele

Publisher Resources

ISBN: 9780470496701Purchase book