Rev 27 |
    Rev 52 |
    Go to most recent revision |
    Blame |
    Compare with Previous |
    Last modification |
    View Log
    | RSS feed
  
  
    1
  
  
<?php
require_once __DIR__ 
. '/AbstractModel.php';
/**
* Abstract model class
*
* Provides basic setters and getters for protected/private properties
* and a constructor to initialize properties using setters and getters.
*
* @author Thomas Lahn
*/
abstract class Model 
extends AbstractModel
{
  /* ORM */
  const persistentPrimaryKey 
= 'id';
  
  /**
   * @var Adapter
   */
  protected static 
$persistentAdapter;
  
  /**
   * Creates a new model object
   *
   * @param array $data     Initialization data (optional)
   * @param array $mapping  Mapping for initialization data (optional)
   */
  public function __construct
(array $data = null, array $mapping = null)
  {
    $this->setAdapter();
        
    parent
::__construct
($data, $mapping);
  }
      
  /**
   * Finds the record for the model object in a database, and fills the object
   * with missing data
   * @see Adapter::find(Model)
   */
  public function find
()
  {
    $class = get_class($this);
    return $class::$persistentAdapter->find($this);
  }
}