Rev 53 | Rev 55 | Go to most recent revision | Show entire file | Ignore 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 | }
|