Subversion Repositories PHPX

Rev

Rev 29 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
27 PointedEar 1
<?php
2
 
3
/**
4
* Abstract model class
5
*
6
* Provides basic setters and getters for protected/private properties
7
* and a constructor to initialize properties using setters and getters.
8
*
9
* @author Thomas Lahn
10
*/
11
abstract class Model extends AbstractModel
12
{
13
  /* ORM */
14
  const persistentPrimaryKey = 'id';
15
 
16
  /**
17
   * @var Adapter
18
   */
19
  protected static $persistentAdapter;
20
 
21
  /**
22
   * Creates a new model object
23
   *
24
   * @param array $data     Initialization data (optional)
25
   * @param array $mapping  Mapping for initialization data (optional)
26
   */
27
  public function __construct(array $data = null, array $mapping = null)
28
  {
29
    $this->setAdapter();
30
 
31
    parent::__construct($data, $mapping);
32
  }
33
 
34
  /**
35
   * Finds the record for the model object in a database, and fills the object
36
   * with missing data
37
   * @see Adapter::find(Model)
38
   */
39
  public function find()
40
  {
41
    $class = get_class($this);
42
    return $class::$persistentAdapter->find($this);
43
  }
44
}