Hola,
estoy intentanto implementar el patrón Data Mapper en mi aplicación y lo he hecho de la siguiente manera. Mi pregunta es si es correcto o no.
Por un lado, tengo una instancia de Zend_Db_Table_Row_Abstract que me sirve como entidad de una fila de la base de datos y dónde puedo añadir métodos propios (aparte de los clásicos setters y getters):
Código PHP:
Ver originalclass Application_Model_DbTableRow_Users
extends Zend_Db_Table_Row_Abstract
{
public function getFullName() {
return $this->_name.' '.$this->_surname;
}
}
Por otro lado, tengo una instancia de Zend_Db_Table_Abstract que me sirve para hacer operaciones globales sobre la tabla en cuestión como, por ejemplo, hacer búsquedas o hacer actualizaciones de varios registros:
Código PHP:
Ver originalclass Application_Model_DbTable_Users
extends Zend_Db_Table_Abstract
{
protected $_name = 'users';
protected $_rowClass = 'Application_Model_DbTableRow_Users';
public function existsName($name)
{
// ....
}
}
Entonces, para crear un nuevo registro entiendo que habría que hacer algo así:
Código PHP:
Ver original// controller - action
$user = new Application_Model_DbTableRow_Users();
$user->setName($name);
$user->setSurname($name);
$user->insert();
Y, para obtener un user en concreto:
Código PHP:
Ver original$users = new Application_Model_DbTable_Users();
$user = $users->findLastCreatedUser(); // esto devuelve un Application_Model_DbTableRow_Users
$user->getFullname();
¿Qué les parece? ¿Es correcto? ¿Alguna sugerencia para mejorarlo?
Muchas gracias!