Skip to content

Commit 79f25f8

Browse files
author
Dominik Liebler
committed
DesignPatternsPHP#226 fixed Builder
1 parent 8aa780f commit 79f25f8

File tree

6 files changed

+53
-46
lines changed

6 files changed

+53
-46
lines changed

Creational/Builder/BikeBuilder.php

-38
This file was deleted.

Creational/Builder/CarBuilder.php

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public function addDoors()
1515
{
1616
$this->car->setPart('rightDoor', new Parts\Door());
1717
$this->car->setPart('leftDoor', new Parts\Door());
18+
$this->car->setPart('trunkLid', new Parts\Door());
1819
}
1920

2021
public function addEngine()

Creational/Builder/Parts/Bike.php Creational/Builder/Parts/Truck.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
namespace DesignPatterns\Creational\Builder\Parts;
44

5-
class Bike extends Vehicle
5+
class Truck extends Vehicle
66
{
77
}

Creational/Builder/README.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ BuilderInterface.php
4444
:language: php
4545
:linenos:
4646

47-
BikeBuilder.php
47+
TruckBuilder.php
4848

49-
.. literalinclude:: BikeBuilder.php
49+
.. literalinclude:: TruckBuilder.php
5050
:language: php
5151
:linenos:
5252

@@ -62,9 +62,9 @@ Parts/Vehicle.php
6262
:language: php
6363
:linenos:
6464

65-
Parts/Bike.php
65+
Parts/Truck.php
6666

67-
.. literalinclude:: Parts/Bike.php
67+
.. literalinclude:: Parts/Truck.php
6868
:language: php
6969
:linenos:
7070

Creational/Builder/Tests/DirectorTest.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
namespace DesignPatterns\Creational\Builder\Tests;
44

5-
use DesignPatterns\Creational\Builder\BikeBuilder;
5+
use DesignPatterns\Creational\Builder\TruckBuilder;
66
use DesignPatterns\Creational\Builder\CarBuilder;
77
use DesignPatterns\Creational\Builder\Director;
88

99
class DirectorTest extends \PHPUnit_Framework_TestCase
1010
{
1111
public function testCanBuildBike()
1212
{
13-
$bikeBuilder = new BikeBuilder();
13+
$bikeBuilder = new TruckBuilder();
1414
$newVehicle = (new Director())->build($bikeBuilder);
1515

16-
$this->assertInstanceOf('DesignPatterns\Creational\Builder\Parts\Bike', $newVehicle);
16+
$this->assertInstanceOf('DesignPatterns\Creational\Builder\Parts\Truck', $newVehicle);
1717
}
1818

1919
public function testCanBuildCar()

Creational/Builder/TruckBuilder.php

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?php
2+
3+
namespace DesignPatterns\Creational\Builder;
4+
5+
use DesignPatterns\Creational\Builder\Parts\Vehicle;
6+
7+
class TruckBuilder implements BuilderInterface
8+
{
9+
/**
10+
* @var Parts\Truck
11+
*/
12+
private $truck;
13+
14+
public function addDoors()
15+
{
16+
$this->truck->setPart('rightDoor', new Parts\Door());
17+
$this->truck->setPart('leftDoor', new Parts\Door());
18+
}
19+
20+
public function addEngine()
21+
{
22+
$this->truck->setPart('truckEngine', new Parts\Engine());
23+
}
24+
25+
public function addWheel()
26+
{
27+
$this->truck->setPart('wheel1', new Parts\Wheel());
28+
$this->truck->setPart('wheel2', new Parts\Wheel());
29+
$this->truck->setPart('wheel3', new Parts\Wheel());
30+
$this->truck->setPart('wheel4', new Parts\Wheel());
31+
$this->truck->setPart('wheel5', new Parts\Wheel());
32+
$this->truck->setPart('wheel6', new Parts\Wheel());
33+
}
34+
35+
public function createVehicle()
36+
{
37+
$this->truck = new Parts\Truck();
38+
}
39+
40+
public function getVehicle(): Vehicle
41+
{
42+
return $this->truck;
43+
}
44+
}

0 commit comments

Comments
 (0)