refactored README

This commit is contained in:
Dominik Liebler
2013-09-03 14:35:47 +02:00
parent ca41d4d362
commit f0b281caa2

View File

@@ -1,11 +1,48 @@
# design patterns in PHP #
# design patterns in PHP
[![Build Status](https://travis-ci.org/Trismegiste/DesignPatternsPHP.png?branch=master)](https://travis-ci.org/Trismegiste/DesignPatternsPHP)
[![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 or Doctrine2 as I'm most familiar with this software).
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.
*Please feel free to fork and add your own examples!*
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!*