Everyweek a new Pattern + Article on www.medium.com/@anhaia.gabriel and www.medium.com/mestredev
This repository was created to show the implementation of a variety of Design Patterns using PHP 8. 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. Once you learn the design pattern and its concept, it will be effortless to apply it in any PHP project.
📖 Pattern | ✍️ Article / Post 📚 |
---|---|
Template Method | LEARN HERE 📖 |
Strategy | LEARN HERE 📖 |
Adapter | LEARN HERE 📖 |
Facade | LEARN HERE 📖 |
Factory Method | Soon |
- Null Object
- Command
- Observer
- Abstract Factory
- Builder
- State
- Decorator
- Object Pool
- Prototype
- Singleton
- Bridge
- Composite
- Fly weight
- Proxy
- Chain of Responsability
- Interpreter
- Iterator
- Mediator
- Money
- Memento
- Visitor
- Docker
I strongly recommend that you follow the articles (links above) and run it 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 through the course.
Build de container:
# docker build -t design-patterns .
or if you prefer # make build
Run the following command in order to test the design patterns:
# make help
and then you will see the list of commands
You just need to run the command with the pattern you want to test, for example:
# make strategy
- If you take a look at the examples into the blog, or inside the folders
/src/{$pattern_name}/
you will notice that all the examples contain a folder calledcomponents
, 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 to be followed in your applications.