All pastes #637036 Raw Edit

Something

public text v1 · immutable
#637036 ·published 2007-07-28 13:48 UTC
rendered paste body
class CustomTableGateway extends pdoext_TableGateway
{
    private $user;

    function __construct($table, $conn, $user)
    {
        $this->user = $user;
        parent::__construct($table, $conn);
    }

    function insert($data)
    {
        $data['user_id'] = $this->user->getId();
        parent::insert($data);
    }

    function update($data, $condition)
    {
        $condition['user_id'] = $this->user->getId();
        parent::update($data, $condition);
    }

    function delete($condition)
    {
        $condition['user_id'] = $this->user->getId();
        parent::delete($condition);
    }
}

class Ticket_TableGateway extends CustomTableGateway
{
    function __construct($conn, $user)
    {
        parent::__construct('ticket', $conn, $user);
    }

    function getFromId($id)
    {
        $result = parent::fecth($id);
        return new Ticket($result);
    }
    
    function getAllTickets() {
        $tickets = array();
        $result = $this->conn->query('SELECT * FROM ticket');

        foreach ($result as $r) {
            $tickets[] = new Ticket($r);
        }
        return $tickets;
    }
}

class User {
    function getId() {
        return 0;
    }
}

$id = 1;

$gateway = new Ticket_TableGateway($conn, $user);
$ticket = $gateway->getFromId($id);

class Ticket {
     private $data;
     function __construct($result)
     {
         $this->data => $result;
     }

     // skulle save bare vaere her i ticket
     function save($gateway) {
         // normalize data if necessary
         try {
             $gateway->save($this->data);
         } catch (Exception $e) {
             throw $e;
         }
     }
     // frygter lidt at komme til at lave magic get og set for en masse klasser
     function __get($prop) {
         return $this->data[$prop];
     }
     function __set($prop, $value) {
         $this->data[$prop] = $value;
     }

}