<!DOCTYPE html>
<meta charset="utf-8">
<?php
//クラスを切り替えるだけで、本番コードとテストコードを切り替えられる
require_once 'DbFactory.php';
$factory = new DbFactory();
//require_once 'MockFactory.php';
//$factory = new MockFactory();
//以降は同じインターフェースで利用できる
$itemDao = $factory->createItemDao();
$itemId = 2;
$item = $itemDao->findById($itemId);
echo 'ID.' . $itemId . 'の商品は' . $item->getName() . 'です。<br />';
$orderDao = $factory->createOrderDao();
$orderId = 3;
$order = $orderDao->findById($orderId);
echo 'ID.' . $orderId . 'の注文は以下のとおりです。<br />';
foreach ($order->getItems() as $item) {
echo $item['object']->getId() . ' : ' . $item['object']->getName() . '<br />';
}
/*
//本番コードを直接呼び出した場合のコード
require_once 'DbItemDao.php';
require_once 'DbOrderDao.php';
$itemDao = new DbItemDao();
$itemId = 2;
$item = $itemDao->findById($itemId);
echo 'ID.' . $itemId . 'の商品は' . $item->getName() . 'です。<br />';
$orderDao = new DbOrderDao(new DbItemDao());
$orderId = 3;
$order = $orderDao->findById($orderId);
echo 'ID.' . $orderId . 'の注文は以下のとおりです。<br />';
foreach ($order->getItems() as $item) {
echo $item['object']->getId() . ' : ' . $item['object']->getName() . '<br />';
}
*/
/*
//テストコードを直接呼び出した場合のコード
require_once 'MockItemDao.php';
require_once 'MockOrderDao.php';
$itemDao = new MockItemDao();
$itemId = 2;
$item = $itemDao->findById($itemId);
echo 'ID.' . $itemId . 'の商品は' . $item->getName() . 'です。<br />';
$orderDao = new MockOrderDao(new MockItemDao());
$orderId = 3;
$order = $orderDao->findById($orderId);
echo 'ID.' . $orderId . 'の注文は以下のとおりです。<br />';
foreach ($order->getItems() as $item) {
echo $item['object']->getId() . ' : ' . $item['object']->getName() . '<br />';
}
*/