Skip to content

gabrielanhaia/php-design-patterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

150 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo - PHP 8.2 Design Patterns

Licence Stars Issues Buy Me A Coffee

PHP 8.2+ Design Patterns

Learn how to implement the most important Design Patterns in PHP. This repository contains 26 patterns with real-world examples, runnable code, class diagrams, and companion articles.

No framework dependencies. Every example is based on real problems and can be applied directly to any PHP project.

New patterns and articles published on Medium @devwarlocks and Medium @anhaia.gabriel.


Table of Contents


Patterns Overview

Type General Article Diagrams
Creational Learn here Diagrams
Structural SOON Diagrams
Behavioral SOON Diagrams

Creational Patterns

# Pattern Code Article Diagram
1 Abstract Factory Source SOON Diagram
2 Builder Source SOON Diagram
3 Factory Method Source Read Diagram
4 Prototype Source SOON Diagram
5 Singleton Source SOON Diagram
6 Object Pool Source SOON Diagram

Structural Patterns

# Pattern Code Article Diagram
7 Adapter Source Read Diagram
8 Composite Source Read Diagram
9 Bridge Source SOON Diagram
10 Facade Source Read Diagram
11 Decorator Source SOON Diagram
12 Flyweight Source SOON Diagram
13 Proxy Source SOON Diagram

Behavioral Patterns

# Pattern Code Article Diagram
14 Template Method Source Read Diagram
15 Strategy Source Read Diagram
16 Iterator Source SOON Diagram
17 Memento Source SOON Diagram
19 Null Object Source SOON Diagram
20 Observer Source Read Diagram
21 State Source SOON Diagram
22 Command Source SOON Diagram
23 Chain of Responsibility Source SOON Diagram
24 Interpreter Source SOON Diagram
25 Mediator Source SOON Diagram
26 Visitor Source Read Diagram

Other Patterns

# Pattern Code Article Diagram
18 Money Source Read Diagram

Getting Started

Prerequisites

1. Build the container

make build

or

docker build -t design-patterns .

2. List all available patterns

make help

3. Run a pattern

make strategy

4. Get a short description of a pattern

make strategy-help

Additional Information

If you look at the examples inside each /src/{pattern_name}/ folder, you'll notice most contain a components subfolder. These files are supporting classes used to demonstrate the pattern in action. They are not part of the pattern itself and should not be taken as examples to follow in your own applications.


License

This project is licensed under the MIT License - see the LICENSE file for details.


If this project helped you learn, consider giving it a star or buying me a coffee.

About

Learn how to implement the most important Design Patterns into your PHP application. This project uses PHP 8+. it has examples for each Pattern and an Article explaining how to use them step by step, their advantages, and disadvantages.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors