<?php
require_once 'ItemDaoInterface.php';
require_once 
'Item.php';

class 
DbItemDao implements ItemDaoInterface
{
    private 
$_items;

    public function 
__construct()
    {
        
$fp fopen('item_data.csv''r');
        if (!
$fp) {
            throw new 
RuntimeException('File [item_data.csv] is not readable.');
        }

        
$dummy fgets($fp1024);

        
$this->_items = array();
        while (
$buffer fgets($fp1024)) {
            list(
$itemId$itemName$itemPrice) = explode(','rtrim($buffer));

            
$this->_items[$itemId] = new Item($itemId$itemName$itemPrice);
        }

        
fclose($fp);
    }

    public function 
findById($itemId)
    {
        if (
array_key_exists($itemId$this->_items)) {
            return 
$this->_items[$itemId];
        } else {
            return 
null;
        }
    }
}