mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-09-30 00:09:13 +02:00
49 lines
1.5 KiB
Markdown
49 lines
1.5 KiB
Markdown
# design patterns in PHP
|
|
|
|
[](https://travis-ci.org/domnikl/DesignPatternsPHP)
|
|
|
|
This is a collection of known design patterns and some sample code how to implement them in PHP. Every pattern has a small list of examples (most of them from Zend Framework, Symfony2 or Doctrine2 as I'm most familiar with this software).
|
|
|
|
I think the problem with patterns is that often people do know them but don't know when to apply which.
|
|
|
|
The patterns can be structured in roughly three different categories:
|
|
|
|
## Creational
|
|
|
|
* [AbstractFactory](AbstractFactory)
|
|
* [Builder](Builder)
|
|
* [SimpleFactory](SimpleFactory)
|
|
* [FactoryMethod](FactoryMethod)
|
|
* [StaticFactory](StaticFactory)
|
|
* [Prototype](Prototype)
|
|
* [Singleton](Singleton) (is considered an anti-pattern! :no_entry:)
|
|
* [Multiton](Multiton) (is considered an anti-pattern! :no_entry:)
|
|
|
|
## Structural
|
|
|
|
* [Adapter](Adapter)
|
|
* [Composite](Composite)
|
|
* [Decorator](Decorator)
|
|
* [Facade](Facade)
|
|
* [Proxy](Proxy)
|
|
* [Registry](Registry)
|
|
* [FluentInterface](FluentInterface)
|
|
* [DataMapper](DataMapper)
|
|
* [DependencyInjection](DependencyInjection)
|
|
|
|
## Behavioral
|
|
|
|
* [ChainOfResponsibilities](ChainOfResponsibilities)
|
|
* [Command](Command)
|
|
* [Iterator](Iterator)
|
|
* [Mediator](Mediator)
|
|
* [NullObject](NullObject)
|
|
* [Observer](Observer)
|
|
* [StatusPattern](StatusPattern)
|
|
* [Strategy](Strategy)
|
|
* [TemplateMethod](TemplateMethod)
|
|
* [Visitor](Visitor)
|
|
|
|
*Please feel free to fork and extend existing or add your own examples!*
|
|
|