Descripción de clases

Entity

Estructura de una Entidad de la base de datos.
Sus atributos y métodos permiten definir las características, configuración y relaciones que poseerá una Entidad propiamente dicha.

Entity #Clase Entity Genérica
PersonaEntity extends Entity #Entity de Persona
EntityDao

Dao = DataAccessObject
Objeto de acceso a datos de una Entidad.

EntityDao #Clase genérica
PersonaDao extends EntityDao #Acceso a datos de Persona
EntityDaoSql

Acceso a datos a través de sentencias SQL

class EntityDaoSql extends EntityDao { ... } //Clase genérica
class PersonaDaoSql extends EntityDaoSql { ... } //Acceso a datos SQL de Persona
class PersonaDao extends PersonaDaoSql { ... } //Acceso a datos de Persona
EntitySql

Para reducir la responsabilidad de EntityDaoSql, se define una clase opcional donde se incorporan una serie de métodos para facilitar la definición de SQL.

EntitySql //Clase genérica

class PersonaSql extends EntitySql{ ... } //Definición de SQL para Persona

class EntityDaoSql extends EntityDao{
  protected $entitySql;
}

class PersonaDaoSql extends EntityDaoSql {
  public function __construct(){
    $this->entitySql = new PersonaSql; //Uso de PersonaSql en PersonaDaoSql
  }
}

class PersonaDao extends PersonaDaoSql //Clase de acceso a datos
EntityValue

Clase opcional para manipular valores de una entidad.

El conjunto de clases del modelo está pensado que los valores de una entidad se manipulen de forma sencilla a través de diccionarios (objeto JSON) o Arrays asociativos. No obstante, existen ciertas particularidades cuya resolución escapa de la responsabilidad de las clases definidas, por eso se define la clase EntityValue.

EntityValue //Clase genérica
Persona extends EntityValue //Manipulación de Valores de Persona

Como se indica en la descripción, esta clase es opcional, y raramente es utilizada

Diagrama de clases