Subversion Repositories PHPX

Rev

Rev 51 | Rev 53 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 51 Rev 52
Line 1... Line 1...
1
<?php
1
<?php
2
2
3
require_once __DIR__ . '/AbstractModel.php';
3
namespace PointedEars\PHPX;
4
4
5
/**
5
/**
6
* Abstract model class for Object-Relational Mapping
6
* Abstract model class for Object-Relational Mapping
7
*
7
*
8
* Provides simple mapping of a model object to records of
8
* Provides simple mapping of a model object to records of
9
* a table of a relational database.
9
* a table of a relational database.
10
*
10
*
11
* @author Thomas Lahn
11
* @author Thomas Lahn
12
*/
12
*/
13
abstract class Model extends AbstractModel
13
abstract class Model extends \PointedEars\PHPX\AbstractModel
14
{
14
{
15
  /**
15
  /**
16
   * The <code>Table</code> for instances of this model
16
   * The <code>Table</code> for instances of this model
17
   *
17
   *
18
   * @type Table|string
18
   * @type Table|string
Line 67... Line 67...
67
                $this->_persistentTable = $value;
67
                $this->_persistentTable = $value;
68
        }
68
        }
69
        else
69
        else
70
        {
70
        {
71
                $table = new $value();
71
                $table = new $value();
72
                if (!($table instanceof Table))
72
                if (!($table instanceof Db\Table))
73
                {
73
                {
74
                        throw new \InvalidArgumentException(
74
                        throw new \InvalidArgumentException(
75
                                'Expected Table instance or string for table name, saw '
75
                                'Parameter does not specify a subclass of \\PointedEars\\PHPX\\Table: '
76
                                        . (\get_class($value) || \gettype($value))
76
                                . $value
77
                        );
77
                        );
78
                }
78
                }
79
79
80
                $this->_persistentTable = $table;
80
                $this->_persistentTable = $table;
81
        }
81
        }
Line 123... Line 123...
123
   *   if there is no data for this object
123
   *   if there is no data for this object
124
   */
124
   */
125
  public function find ()
125
  public function find ()
126
  {
126
  {
127
    $result = $this->persistentTable->find(
127
    $result = $this->persistentTable->find(
128
        $this->{$this->__persistentId});
128
        $this->{$this->_persistentId});
129
    if ($result)
129
    if ($result)
130
    {
130
    {
131
        return $this->map($result);
131
        return $this->map($result);
132
    }
132
    }
133
133