This document provides an overview and examples of several design patterns in object-oriented programming with PHP, including Strategy, Factory, Abstract Factory, Adapter, Singleton, Iterator, and Observer patterns. The Strategy pattern allows making decisions on different cases more easily by encapsulating varying implementations of an algorithm. The Factory pattern hides object creation logic and allows for polymorphic object instantiation. The Abstract Factory pattern ensures all created objects conform to a common interface. The Adapter pattern allows incompatible interfaces to work together by wrapping an object to fit expected interfaces. The Singleton pattern ensures only one instance of a class is created. The Iterator pattern provides a way to access elements of an object sequentially without exposing its underlying representation. The Observer pattern allows objects to publish