Files
DesignPatternsPHP/README.md
Dominik Liebler d4e74ce175 fixed markup
2013-09-03 14:49:31 +02:00

49 lines
1.5 KiB
Markdown

# design patterns in PHP
[![Build Status](https://travis-ci.org/domnikl/DesignPatternsPHP.png?branch=master)](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!*