/php-design-patterns

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.

Primary LanguagePHPMIT LicenseMIT

Logo - PHP 8.1 Design Patterns

Licence Package Stars Build Status Code Coverage

Every week a new Pattern + Article on www.medium.com/@anhaia.gabriel and www.medium.com/devwarlocks

PHP 8.2+ - Design Patterns

This repository was created to show the implementation of various Design Patterns using PHP 8.2. There is no dependency on a framework, and the examples are the most real as possible based on my own experiences solving real-life problems. Applying the design pattern and its concept in any PHP project will be effortless once you learn the design pattern and its concept.

Classification/Type

Type General Article Diagrams
Creational LEARN HERE 📖 HERE
Structural SOON HERE
Behavioral SOON SOON

Patterns implemented + Article

# 📖 Pattern Classification~Type Code Example / Implementation ✍️ Article / Post 📚 Diagram
1 Abstract Factory Creational HERE SOON HERE
2 Builder Creational HERE SOON HERE
3 Factory Method Creational HERE LEARN HERE 📖 HERE
4 Prototype Creational HERE SOON HERE
5 Singleton Creational HERE SOON HERE
6 Object Pool Creational HERE SOON HERE
7 Adapter Structural HERE LEARN HERE 📖 HERE
8 Composite Structural HERE LEARN HERE 📖 HERE
9 Bridge Structural HERE SOON HERE
10 Facade Structural HERE LEARN HERE 📖 HERE
11 Decorator Structural HERE SOON HERE
12 Flyweight Structural HERE SOON HERE
13 Proxy Structural HERE SOON HERE
14 Template Method Behavioral HERE LEARN HERE 📖 SOON
15 Strategy Behavioral HERE LEARN HERE 📖 SOON
16 Iterator Behavioral HERE SOON SOON
17 Memento Behavioral HERE SOON SOON
18 Money X HERE LEARN HERE 📖 SOON
19 Null Object Behavioral HERE SOON SOON
20 Observer Behavioral HERE LEARN HERE 📖 SOON
21 State Behavioral HERE SOON SOON
22 Command Behavioral HERE SOON SOON
23 Chain of Responsibility Behavioral HERE SOON SOON
24 Interpreter Behavioral HERE SOON SOON
25 Mediator Behavioral HERE SOON SOON
26 Visitor Behavioral HERE LEARN HERE 📖 SOON

Dependencies

Running the project

I strongly recommend that you follow the articles (links above) and run them with Docker. It will be much easier, and you need to install Docker on your computer, independent of the OS you are using. With a few commands, you will run/test all the Design Patterns implemented throughout the course.

1. Build the container:

docker build -t design-patterns .

or if you prefer

make build

2. Run the following commands to test the design patterns:

make help

and then you will see the list of commands

3. You need to run the command with the pattern you want to test, for example:

make strategy

4. In case you want to see a short description of the pattern, you can run the make PATTERN_NAME-help, for example:

make strategy-help

With that, you should see a one-line description of the pattern.

Additional Information

  • If you take a look at the examples in the blog or inside the folders /src/{$pattern_name}/ you will notice that almost All the examples contain a folder called components; those folders are the files/classes used to demonstrate how to use each pattern. Never consider what is in there as part of the pattern! They are not examples to be followed in your applications.