Subversion Repositories PHPX

Rev

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

Rev 53 Rev 54
Line 15... Line 15...
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
19
   */
19
   */
20
        protected $_persistentTable;
20
        protected static $_persistentTable;
21
21
22
  /**
22
  /**
23
   * The name(s) of the property or properties whose value(s)
23
   * The name(s) of the property or properties whose value(s)
24
   * identify this object in the <code>Table</code>.  They are
24
   * identify this object in the <code>Table</code>.  They are
25
   * used for comparing against the primary key column(s) of
25
   * used for comparing against the primary key column(s) of
Line 55... Line 55...
55
    parent::__construct($data, $mapping);
55
    parent::__construct($data, $mapping);
56
  }
56
  }
57
57
58
  public function getPersistentTable ()
58
  public function getPersistentTable ()
59
  {
59
  {
-
 
60
        $class = \get_class($this);
60
        if (is_string($this->_persistentTable))
61
        if (\is_string($class::$_persistentTable))
61
        {
62
        {
62
                /* Call setter to convert to Table */
63
                /* Call setter to convert to Table */
63
                $this->persistentTable = $this->_persistentTable;
64
                $this->setPersistentTable($class::$_persistentTable);
64
        }
65
        }
65
66
66
        return $this->_persistentTable;
67
        return $class::$_persistentTable;
67
  }
68
  }
68
69
69
  public function setPersistentTable ($value)
70
  public function setPersistentTable ($value)
70
  {
71
  {
-
 
72
        $class = \get_class($this);
71
        if ($value instanceof Table)
73
        if ($value instanceof Table)
72
        {
74
        {
73
                $this->_persistentTable = $value;
75
                $class::$_persistentTable = $value;
74
        }
76
        }
75
        else
77
        else
76
        {
78
        {
77
                $table = new $value();
79
                $table = new $value();
78
                if (!($table instanceof Db\Table))
80
                if (!($table instanceof Db\Table))
Line 81... Line 83...
81
                                'Parameter does not specify a subclass of \\PointedEars\\PHPX\\Table: '
83
                                'Parameter does not specify a subclass of \\PointedEars\\PHPX\\Table: '
82
                                . $value
84
                                . $value
83
                        );
85
                        );
84
                }
86
                }
85
87
86
                $this->_persistentTable = $table;
88
                $class::$_persistentTable = $table;
87
        }
89
        }
88
  }
90
  }
89
91
90
  /**
92
  /**
91
   * Returns an array for database queries containing the
93
   * Returns an array for database queries containing the
Line 128... Line 130...
128
   *   This object filled with missing data, or <code>null</code>
130
   *   This object filled with missing data, or <code>null</code>
129
   *   if there is no data for this object
131
   *   if there is no data for this object
130
   */
132
   */
131
  public function find ()
133
  public function find ()
132
  {
134
  {
-
 
135
        $class = \get_class($this);
133
    $result = $this->persistentTable->find($this->{$this->_persistentId});
136
    $result = $this->persistentTable->find($this->{$this->_persistentId});
134
    if ($result)
137
    if ($result)
135
    {
138
    {
136
        return $this->map($result);
139
        return $this->map($result);
137
    }
140
    }