Subversion Repositories PHPX

Rev

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

Rev 56 Rev 58
Line 20... Line 20...
20
   * @var string
20
   * @var string
21
   */
21
   */
22
  protected static $_name = '';
22
  protected static $_name = '';
23
23
24
  /**
24
  /**
-
 
25
   * Columns definition
-
 
26
   * @var array
-
 
27
         * @see Table::create()
-
 
28
   */
-
 
29
  protected static $_columns;
-
 
30
-
 
31
  /**
-
 
32
   * Indexes definition
-
 
33
   * @var array
-
 
34
         * @see Table::create()
-
 
35
   */
-
 
36
  protected static $_indexes;
-
 
37
-
 
38
  /**
-
 
39
   * Constraints definition
-
 
40
   * @var array
-
 
41
         * @see Table::create()
-
 
42
   */
-
 
43
  protected static $_constraints;
-
 
44
-
 
45
  /**
25
   * Database of the table
46
   * Database of the table
26
   * @var Database|string
47
   * @var Database|string
-
 
48
         * @see Table::create()
27
   */
49
   */
28
  protected static $_database;
50
  protected static $_database;
29
51
30
  /**
52
  /**
31
   * Name of the primary key column of the table
53
   * Name of the primary key column of the table
Line 163... Line 185...
163
        $class = \get_class($this);
185
        $class = \get_class($this);
164
        return $class::$_id;
186
        return $class::$_id;
165
  }
187
  }
166
188
167
  /**
189
  /**
-
 
190
   * Returns the <var>options</var> array for {@link Database::createTable}
-
 
191
   *
-
 
192
   * Should be called and overridden by inheriting classes.
-
 
193
   *
-
 
194
   * @return array
-
 
195
   */
-
 
196
  protected function _createOptions ()
-
 
197
  {
-
 
198
        $options = array();
-
 
199
-
 
200
        foreach (array('indexes', 'constraints') as $option)
-
 
201
        {
-
 
202
                if ($class::${"_$option"})
-
 
203
                {
-
 
204
                        $options[$option] = $class::${"_$option"};
-
 
205
                }
-
 
206
        }
-
 
207
-
 
208
        return $options;
-
 
209
  }
-
 
210
-
 
211
  /**
-
 
212
   * Creates the table for this model
-
 
213
   *
-
 
214
   * @return bool
-
 
215
   */
-
 
216
  public function create ()
-
 
217
  {
-
 
218
        $class = \get_class($this);
-
 
219
                return $this->database->createTable(
-
 
220
                        $class::$_name, $class::$_columns, $this->_createOptions());
-
 
221
  }
-
 
222
-
 
223
  /**
168
   * Initiates a transaction
224
   * Initiates a transaction
169
   *
225
   *
170
   * @return bool
226
   * @return bool
171
   * @see Database::beginTransaction()
227
   * @see Database::beginTransaction()
172
   */
228
   */