This commit is contained in:
Dominik Liebler
2013-09-13 14:19:55 +02:00
parent 8452c63b7e
commit 8b82ed198d
47 changed files with 93 additions and 218 deletions

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Adapter; namespace DesignPatterns\Adapter;
/** /**

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Builder; namespace DesignPatterns\Builder;
/** /**

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Builder; namespace DesignPatterns\Builder;
/** /**
@ -20,14 +16,28 @@ namespace DesignPatterns\Builder;
*/ */
interface Builder interface Builder
{ {
/**
* @return mixed
*/
public function createVehicle();
function createVehicle(); /**
* @return mixed
*/
public function addWheel();
function addWheel(); /**
* @return mixed
*/
public function addEngine();
function addEngine(); /**
* @return mixed
*/
public function addDoors();
function addDoors(); /**
* @return mixed
function getVehicle(); */
public function getVehicle();
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Builder; namespace DesignPatterns\Builder;
/** /**
@ -42,5 +38,4 @@ class CarBuilder implements Builder
{ {
return $this->car; return $this->car;
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Builder; namespace DesignPatterns\Builder;
/** /**

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Builder\Parts; namespace DesignPatterns\Builder\Parts;
/** /**

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Builder\Parts; namespace DesignPatterns\Builder\Parts;
/** /**

View File

@ -2,6 +2,9 @@
namespace DesignPatterns\Builder\Parts; namespace DesignPatterns\Builder\Parts;
/**
* Class Door
*/
class Door class Door
{ {

View File

@ -2,6 +2,9 @@
namespace DesignPatterns\Builder\Parts; namespace DesignPatterns\Builder\Parts;
/**
* Class Engine
*/
class Engine class Engine
{ {

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Builder\Parts; namespace DesignPatterns\Builder\Parts;
/** /**
@ -11,12 +7,17 @@ namespace DesignPatterns\Builder\Parts;
*/ */
abstract class Vehicle abstract class Vehicle
{ {
/**
* @var array
*/
protected $data; protected $data;
/**
* @param string $key
* @param mixed $value
*/
public function setPart($key, $value) public function setPart($key, $value)
{ {
$this->data[$key] = $value; $this->data[$key] = $value;
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\ChainOfResponsibilities; namespace DesignPatterns\ChainOfResponsibilities;
/** /**
@ -16,7 +12,9 @@ namespace DesignPatterns\ChainOfResponsibilities;
*/ */
abstract class Handler abstract class Handler
{ {
/**
* @var null
*/
private $successor = null; private $successor = null;
/** /**

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\ChainOfResponsibilities; namespace DesignPatterns\ChainOfResponsibilities;
/** /**

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\ChainOfResponsibilities\Responsible; namespace DesignPatterns\ChainOfResponsibilities\Responsible;
use DesignPatterns\ChainOfResponsibilities\Handler; use DesignPatterns\ChainOfResponsibilities\Handler;
@ -33,5 +29,4 @@ class FastStorage extends Handler
return false; return false;
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\ChainOfResponsibilities\Responsible; namespace DesignPatterns\ChainOfResponsibilities\Responsible;
use DesignPatterns\ChainOfResponsibilities\Handler; use DesignPatterns\ChainOfResponsibilities\Handler;
@ -21,9 +17,14 @@ use DesignPatterns\ChainOfResponsibilities\Request;
*/ */
class SlowStorage extends Handler class SlowStorage extends Handler
{ {
/**
* @var array
*/
protected $_data = array(); protected $_data = array();
/**
* @param array $data
*/
public function __construct($data = array()) public function __construct($data = array())
{ {
$this->_data = $data; $this->_data = $data;
@ -34,11 +35,11 @@ class SlowStorage extends Handler
if ('get' === $req->verb) { if ('get' === $req->verb) {
if (array_key_exists($req->key, $this->_data)) { if (array_key_exists($req->key, $this->_data)) {
$req->response = $this->_data[$req->key]; $req->response = $this->_data[$req->key];
return true; return true;
} }
} }
return false; return false;
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Command; namespace DesignPatterns\Command;
/** /**

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Command; namespace DesignPatterns\Command;
/** /**

View File

@ -5,7 +5,7 @@ namespace DesignPatterns\FactoryMethod;
/** /**
* Bicycle is a bicycle * Bicycle is a bicycle
*/ */
class Bicycle implements Vehicle class Bicycle implements VehicleInterface
{ {
/** /**
* @var string * @var string

View File

@ -28,7 +28,7 @@ abstract class FactoryMethod
* *
* @param string $type a generic type * @param string $type a generic type
* *
* @return Vehicle a new vehicle * @return VehicleInterface a new vehicle
*/ */
abstract protected function createVehicle($type); abstract protected function createVehicle($type);
@ -37,7 +37,7 @@ abstract class FactoryMethod
* *
* @param int $type * @param int $type
* *
* @return Vehicle a new vehicle * @return VehicleInterface a new vehicle
*/ */
public function create($type) public function create($type)
{ {

View File

@ -5,7 +5,7 @@ namespace DesignPatterns\FactoryMethod;
/** /**
* Ferrari is a italian car * Ferrari is a italian car
*/ */
class Ferrari implements Vehicle class Ferrari implements VehicleInterface
{ {
/** /**
* @var string * @var string

View File

@ -5,7 +5,7 @@ namespace DesignPatterns\FactoryMethod;
/** /**
* Porsche is a german car * Porsche is a german car
*/ */
class Porsche implements Vehicle class Porsche implements VehicleInterface
{ {
/** /**
* @var string * @var string

View File

@ -3,14 +3,14 @@
namespace DesignPatterns\FactoryMethod; namespace DesignPatterns\FactoryMethod;
/** /**
* Vehicle is a contract for a vehicle * VehicleInterface is a contract for a vehicle
*/ */
interface Vehicle interface VehicleInterface
{ {
/** /**
* sets the color of the vehicle * sets the color of the vehicle
* *
* @param string $rgb * @param string $rgb
*/ */
function setColor($rgb); public function setColor($rgb);
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Mediator; namespace DesignPatterns\Mediator;
/** /**
@ -12,8 +8,11 @@ namespace DesignPatterns\Mediator;
*/ */
abstract class Colleague abstract class Colleague
{ {
/**
// this ensures no change in subclasses * this ensures no change in subclasses
*
* @var MediatorInterface
*/
private $mediator; private $mediator;
// for subclasses // for subclasses
@ -22,10 +21,12 @@ abstract class Colleague
return $this->mediator; return $this->mediator;
} }
/**
* @param MediatorInterface $medium
*/
public function __construct(MediatorInterface $medium) public function __construct(MediatorInterface $medium)
{ {
// in this way, we are sure the concrete colleague knows the mediator // in this way, we are sure the concrete colleague knows the mediator
$this->mediator = $medium; $this->mediator = $medium;
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Mediator; namespace DesignPatterns\Mediator;
use DesignPatterns\Mediator\Subsystem; use DesignPatterns\Mediator\Subsystem;

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Mediator\Subsystem; namespace DesignPatterns\Mediator\Subsystem;
use DesignPatterns\Mediator\Colleague; use DesignPatterns\Mediator\Colleague;

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Mediator\Subsystem; namespace DesignPatterns\Mediator\Subsystem;
use DesignPatterns\Mediator\Colleague; use DesignPatterns\Mediator\Colleague;

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Mediator\Subsystem; namespace DesignPatterns\Mediator\Subsystem;
use DesignPatterns\Mediator\Colleague; use DesignPatterns\Mediator\Colleague;
@ -19,5 +15,4 @@ class Server extends Colleague
$data = $this->getMediator()->queryDb(); $data = $this->getMediator()->queryDb();
$this->getMediator()->sendResponse("Hello $data"); $this->getMediator()->sendResponse("Hello $data");
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\Adapter; namespace DesignPatterns\Tests\Adapter;
use DesignPatterns\Adapter\EBookAdapter; use DesignPatterns\Adapter\EBookAdapter;
@ -42,5 +38,4 @@ class AdapterTest extends \PHPUnit_Framework_TestCase
$book->open(); $book->open();
$book->turnPage(); $book->turnPage();
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\Builder; namespace DesignPatterns\Tests\Builder;
use DesignPatterns\Builder\Director; use DesignPatterns\Builder\Director;
@ -42,5 +38,4 @@ class DirectorTest extends \PHPUnit_Framework_TestCase
$newVehicle = $this->director->build($builder); $newVehicle = $this->director->build($builder);
$this->assertInstanceOf('DesignPatterns\Builder\Parts\Vehicle', $newVehicle); $this->assertInstanceOf('DesignPatterns\Builder\Parts\Vehicle', $newVehicle);
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\ChainOfResponsibilities; namespace DesignPatterns\Tests\ChainOfResponsibilities;
use DesignPatterns\ChainOfResponsibilities\Request; use DesignPatterns\ChainOfResponsibilities\Request;
@ -74,5 +70,4 @@ class ChainTest extends \PHPUnit_Framework_TestCase
// the last rsponsible : // the last rsponsible :
$this->assertEquals('DesignPatterns\ChainOfResponsibilities\Responsible\SlowStorage', $request->forDebugOnly); $this->assertEquals('DesignPatterns\ChainOfResponsibilities\Responsible\SlowStorage', $request->forDebugOnly);
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\Command; namespace DesignPatterns\Tests\Command;
use DesignPatterns\Command\Invoker; use DesignPatterns\Command\Invoker;
@ -32,5 +28,4 @@ class CommandTest extends \PHPUnit_Framework_TestCase
$this->expectOutputString('Hello World'); $this->expectOutputString('Hello World');
$this->invoker->run(); $this->invoker->run();
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Test\Composite; namespace DesignPatterns\Test\Composite;
use DesignPatterns\Composite; use DesignPatterns\Composite;
@ -35,5 +31,4 @@ class FormTest extends \PHPUnit_Framework_TestCase
{ {
$this->assertTrue(is_subclass_of('DesignPatterns\Composite\Form', 'DesignPatterns\Composite\FormElement')); $this->assertTrue(is_subclass_of('DesignPatterns\Composite\Form', 'DesignPatterns\Composite\FormElement'));
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Test\DataMapper; namespace DesignPatterns\Test\DataMapper;
use DesignPatterns\DataMapper\UserMapper; use DesignPatterns\DataMapper\UserMapper;
@ -106,5 +102,4 @@ class UserMapperTest extends \PHPUnit_Framework_TestCase
$user = $this->mapper->findById(404); $user = $this->mapper->findById(404);
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\Decorator; namespace DesignPatterns\Tests\Decorator;
use DesignPatterns\Decorator; use DesignPatterns\Decorator;
@ -64,5 +60,4 @@ class DecoratorTest extends \PHPUnit_Framework_TestCase
$dec = $this->getMockForAbstractClass('DesignPatterns\Decorator\Decorator', array($mock)); $dec = $this->getMockForAbstractClass('DesignPatterns\Decorator\Decorator', array($mock));
$this->assertNotNull($dec); $this->assertNotNull($dec);
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\Facade; namespace DesignPatterns\Tests\Facade;
use DesignPatterns\Facade\Facade as Computer; use DesignPatterns\Facade\Facade as Computer;
@ -46,5 +42,4 @@ class FacadeTest extends \PHPUnit_Framework_TestCase
// but I can access to lower component // but I can access to lower component
$this->assertEquals('Linux', $os->getName()); $this->assertEquals('Linux', $os->getName());
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\FactoryMethod; namespace DesignPatterns\Tests\FactoryMethod;
use DesignPatterns\FactoryMethod\FactoryMethod; use DesignPatterns\FactoryMethod\FactoryMethod;
@ -38,7 +34,7 @@ class FactoryMethodTest extends \PHPUnit_Framework_TestCase
// about the factory, all we know is it can produce vehicle // about the factory, all we know is it can produce vehicle
foreach ($this->type as $oneType) { foreach ($this->type as $oneType) {
$vehicle = $shop->create($oneType); $vehicle = $shop->create($oneType);
$this->assertInstanceOf('DesignPatterns\FactoryMethod\Vehicle', $vehicle); $this->assertInstanceOf('DesignPatterns\FactoryMethod\VehicleInterface', $vehicle);
} }
} }
@ -51,5 +47,4 @@ class FactoryMethodTest extends \PHPUnit_Framework_TestCase
{ {
$shop->create('spaceship'); $shop->create('spaceship');
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\FluentInterface; namespace DesignPatterns\Tests\FluentInterface;
use DesignPatterns\FluentInterface\SQL; use DesignPatterns\FluentInterface\SQL;
@ -24,5 +20,4 @@ class FluentInterfaceTest extends \PHPUnit_Framework_TestCase
$this->assertEquals('SELECT foo,bar FROM foobar AS f WHERE f.bar = ?', $query); $this->assertEquals('SELECT foo,bar FROM foobar AS f WHERE f.bar = ?', $query);
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\Iterator; namespace DesignPatterns\Tests\Iterator;
use DesignPatterns\Iterator\CardGame; use DesignPatterns\Iterator\CardGame;
@ -64,5 +60,4 @@ class IteratorTest extends \PHPUnit_Framework_TestCase
$newDeck->append(new \ArrayIterator($joker)); $newDeck->append(new \ArrayIterator($joker));
$this->assertCount(33, $newDeck); $this->assertCount(33, $newDeck);
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\Mediator; namespace DesignPatterns\Tests\Mediator;
use DesignPatterns\Mediator\Mediator; use DesignPatterns\Mediator\Mediator;
@ -35,5 +31,4 @@ class MediatorTest extends \PHPUnit_Framework_TestCase
// Anyway, it remains complexity in the Mediator that's why the pattern // Anyway, it remains complexity in the Mediator that's why the pattern
// Observer is preferable in mnay situations. // Observer is preferable in mnay situations.
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\NullObject; namespace DesignPatterns\Tests\NullObject;
use DesignPatterns\NullObject\NullLogger; use DesignPatterns\NullObject\NullLogger;
@ -31,5 +27,4 @@ class LoggerTest extends \PHPUnit_Framework_TestCase
$this->expectOutputString('We are in DesignPatterns\NullObject\Service::doSomething'); $this->expectOutputString('We are in DesignPatterns\NullObject\Service::doSomething');
$service->doSomething(); $service->doSomething();
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\SimpleFactory; namespace DesignPatterns\Tests\SimpleFactory;
use DesignPatterns\SimpleFactory\ConcreteFactory; use DesignPatterns\SimpleFactory\ConcreteFactory;

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\Singleton; namespace DesignPatterns\Tests\Singleton;
use DesignPatterns\Singleton\Singleton; use DesignPatterns\Singleton\Singleton;
@ -30,5 +26,4 @@ class SingletonTest extends \PHPUnit_Framework_TestCase
$meth = $refl->getMethod('__construct'); $meth = $refl->getMethod('__construct');
$this->assertTrue($meth->isPrivate()); $this->assertTrue($meth->isPrivate());
} }
} }

View File

@ -27,5 +27,4 @@ class StaticFactoryTest extends \PHPUnit_Framework_TestCase
$obj = StaticFactory::factory($type); $obj = StaticFactory::factory($type);
$this->assertInstanceOf('DesignPatterns\StaticFactory\FormatterInterface', $obj); $this->assertInstanceOf('DesignPatterns\StaticFactory\FormatterInterface', $obj);
} }
} }

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\TemplateMethod; namespace DesignPatterns\Tests\TemplateMethod;
use DesignPatterns\TemplateMethod; use DesignPatterns\TemplateMethod;

View File

@ -1,9 +1,5 @@
<?php <?php
/*
* DesignPatternPHP
*/
namespace DesignPatterns\Tests\Visitor; namespace DesignPatterns\Tests\Visitor;
use DesignPatterns\Visitor; use DesignPatterns\Visitor;