Modelo


La capa de modelo es la que gestiona la lectura y el registro de la información en la base de datos.

Temma ofrece 3 mecanismos para esto:

  • Acceso directo a la base de datos, usando el objeto de abstracción \Temma\Datasources\Sql.
  • Creación automática de un objeto DAO por parte del framework, para acceder fácilmente a una tabla sin escribir ningún código.
  • Escritura de tus propios objetos DAO, para hacer las consultas más eficientes de lo que lo haría una herramienta automática.

Cómo usar estos mecanismos depende de ti. Sin embargo, te sugerimos hacer esto:

  1. Empieza usando el DAO generado automáticamente por Temma. Te permite escribir el código de tu aplicación rápidamente. Mientras solo necesites consultas simples para una única tabla, esto funciona bien. Por ejemplo, escribirías:
    // recupera un usuario a partir de su id
    $user = $this->_dao->get($userId);
    
    // recupera todos los usuarios cuyo campo 'valid' sea true
    $validUsers = $this->_dao->search(
        $this->_dao->criteria()->is('valid')
    );
    
  2. Si quieres simplificar el uso del DAO, puedes crear tu propio DAO, que extienda el que viene por defecto. Por ejemplo, puedes crear un método:
    $proUsers = $this->_dao->getLastProfessionalUsers(5);
    
    que será más fácil de usar y mucho más explícito que:
    $proUsers = $this->_dao->search(
        $this->_dao->criteria()
            ->equal('type', 'pro')
            ->is('valid'),
        ['date_creation' => 'desc'],
        null,
        5
    );
    
    Estos métodos adicionales solo serán capas que sirven para simplificar el uso del DAO, pero la implementación seguirá siendo siempre igual de simple y rápida de escribir.
  3. Posteriormente, puedes enriquecer tu DAO personalizado, para hacer que realice consultas complejas (con uniones entre varias tablas, subconsultas, agrupaciones, etc.). Tendrás entonces que acceder directamente a la base de datos y escribir tus propias consultas SQL, pero te beneficiarás del mecanismo de simplificación para la escritura de consultas que ofrece el framework.

Sin embargo, si conoces bien SQL, te animamos a escribir tus DAO directamente colocando en ellos las consultas SQL. Siempre será más eficiente a medio plazo.