| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | <?php/** * @class Model * Baseclass for Models in this imaginary ORM */class Model {    public $id, $attributes;    static function create($params) {        $obj = new self(get_object_vars($params));        $obj->save();        return $obj;    }    static function find($id) {        global $dbh;        $found = null;        foreach ($dbh->rs() as $rec) {            if ($rec['id'] == $id) {                $found = new self($rec);                break;            }        }        return $found;    }    static function update($id, $params) {        global $dbh;        $rec = self::find($id);        if ($rec == null) {            return $rec;        }        $rs = $dbh->rs();        foreach ($rs as $idx => $row) {            if ($row['id'] == $id) {                $rec->attributes = array_merge($rec->attributes, get_object_vars($params));                $dbh->update($idx, $rec->attributes);                break;            }        }        return $rec;    }    static function destroy($id) {        global $dbh;        $rec = null;        $rs = $dbh->rs();        foreach ($rs as $idx => $row) {            if ($row['id'] == $id) {                $rec = new self($dbh->destroy($idx));                break;            }        }        return $rec;    }    static function all() {        global $dbh;        return $dbh->rs();    }    public function __construct($params) {        $this->id = isset($params['id']) ? $params['id'] : null;        $this->attributes = $params;    }    public function save() {        global $dbh;        $this->attributes['id'] = $dbh->pk();        $dbh->insert($this->attributes);    }    public function to_hash() {        return $this->attributes;    }}
 |