-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfacade.php
39 lines (36 loc) · 1.25 KB
/
facade.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
/**
* Created by PhpStorm.
* User: nemeth.zoltan
* Date: 2016. 05. 13.
* Time: 7:55
*/
include __DIR__ . '/vendor/autoload.php';
// Order create
$order = new \DP\Facade\Model\Order();
$order->addProduct(new \DP\Facade\Model\Product(1, 'Product A', 10));
$order->addProduct(new \DP\Facade\Model\Product(1, 'Product B', 5));
$order->addProduct(new \DP\Facade\Model\Product(1, 'Product C', 3));
// Default
$orderService = new \DP\Facade\Service\OrderManager();
$orderService->setInventoryService(new \DP\Facade\Service\Inventory(array('warehouse', 'marketplace')));
$orderService->setPaymentService(new \DP\Facade\Service\Payment('cash on delivery'));
$orderService->setShippingService(new \DP\Facade\Service\Shipping());
$orderService->addOrder($order);
$status = $orderService->makeOrder($order);
echo '<h3>Order status</h3>';
echo $status;
echo '<h3>Order service</h3>';
echo $orderService;
//
// Facade pattern
$service = new \DP\Facade\FacadeOrder();
$facadeOrder = $service->addOrder(array(
new \DP\Facade\Model\Product(1, 'Product D', 10),
new \DP\Facade\Model\Product(1, 'Product E', 5),
new \DP\Facade\Model\Product(1, 'Product F', 3)
));
echo '<h3>Order status</h3>';
echo $service->checkout($facadeOrder);
echo '<h3>Order service</h3>';
echo $service;