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

Get Professional PHP Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.