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 | } |