summaryrefslogtreecommitdiffstats
path: root/application/models/ClientMapper.php
blob: f1e58523d4933ea21f902278a562d68a2c6b3acd (plain) (blame)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php

class Application_Model_ClientMapper
{

	protected $_dbTable;
 
    public function setDbTable($dbTable)
    {
        if (is_string($dbTable)) {
            $dbTable = new $dbTable();
        }
        if (!$dbTable instanceof Zend_Db_Table_Abstract) {
            throw new Exception('Invalid table data gateway provided');
        }
        $this->_dbTable = $dbTable;
        return $this;
    }
 
    public function getDbTable()
    {
        if (null === $this->_dbTable) {
            $this->setDbTable('Application_Model_DbTable_Guestbook');
        }
        return $this->_dbTable;
    }
 
    public function save(Application_Model_Client $client)
    {
        $data = array(
            'clientID'   => $client->getID(),
            'macadress' => $client->getMacadress(),
            'hardwarehash' => $client->getHardwarehash,
        );
 
        if (null === ($clientID = $client->getId())) {
            unset($data['clientID']);
            $this->getDbTable()->insert($data);
        } else {
            $this->getDbTable()->update($data, array('clientID = ?' => $clientID));
        }
    }
 
    public function find($clientID, Application_Model_Client $client)
   {
        $result = $this->getDbTable()->find($clientID);
        if (0 == count($result)) {
            return;
        }
        $row = $result->current();
        $guestbook->setID($row->clientID)
                  ->setMacadress($row->macadress)
                  ->setHardwarehash($row->hardwarehash);
    }
 
    public function fetchAll()
    {
        $resultSet = $this->getDbTable()->fetchAll();
        $entries   = array();
        foreach ($resultSet as $row) {
            $entry = new Application_Model_Client();
            $entry->setId($row->clientID)
                  ->setMacadress($row->macadress)
                  ->setHardwarehash($row->hardwarehash);
            $entries[] = $entry;
        }
        return $entries;
    }
}