DesignPatternsPHP/README.md
Dominik Liebler 2ee83307ee fixed markup
2013-09-03 14:47:29 +02:00

49 lines
1.8 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](tree/master/AbstractFactory)
* [Builder](tree/master/Builder)
* [SimpleFactory](tree/master/SimpleFactory)
* [FactoryMethod](tree/master/FactoryMethod)
* [StaticFactory](tree/master/StaticFactory)
* [Prototype](tree/master/Prototype)
* [Singleton](tree/master/Singleton) (is considered an anti-pattern! :no_entry:)
* [Multiton](tree/master/Multiton) (is considered an anti-pattern! :no_entry:)
## Structural
* [Adapter](tree/master/Adapter)
* [Composite](tree/master/Composite)
* [Decorator](tree/master/Decorator)
* [Facade](tree/master/Facade)
* [Proxy](tree/master/Proxy)
* [Registry](tree/master/Registry)
* [FluentInterface](tree/master/FluentInterface)
* [DataMapper](tree/master/DataMapper)
* [DependencyInjection](tree/master/DependencyInjection)
## Behavioral
* [ChainOfResponsibilities](tree/master/ChainOfResponsibilities)
* [Command](tree/master/Command)
* [Iterator](tree/master/Iterator)
* [Mediator](tree/master/Mediator)
* [NullObject](tree/master/NullObject)
* [Observer](tree/master/Observer)
* [StatusPattern](tree/master/StatusPattern)
* [Strategy](tree/master/Strategy)
* [TemplateMethod](tree/master/TemplateMethod)
* [Visitor](tree/master/Visitor)
*Please feel free to fork and extend existing or add your own examples!*