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:
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:Ver original
class Application_Model_DbTableRow_Users extends Zend_Db_Table_Row_Abstract { public function getFullName() { return $this->_name.' '.$this->_surname; } }
Código PHP:
Entonces, para crear un nuevo registro entiendo que habría que hacer algo así:Ver original
class Application_Model_DbTable_Users extends Zend_Db_Table_Abstract { protected $_name = 'users'; protected $_rowClass = 'Application_Model_DbTableRow_Users'; public function existsName($name) { // .... } }
Código PHP:
Y, para obtener un user en concreto:Ver original
// controller - action $user = new Application_Model_DbTableRow_Users(); $user->setName($name); $user->setSurname($name); $user->insert();
Código PHP:
¿Qué les parece? ¿Es correcto? ¿Alguna sugerencia para mejorarlo?Ver original
$users = new Application_Model_DbTable_Users(); $user = $users->findLastCreatedUser(); // esto devuelve un Application_Model_DbTableRow_Users $user->getFullname();
Muchas gracias!