Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/03/2011, 16:21
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Zend - MVC - Duda Persistencia / Modelo

Zend_Db_Table no es un ORM, es una solución simple implementando el patrón Table Gateway, si quieres usar un ORM, Doctrine es el indicado, Propel hasta donde conozco es una librería tipo PDO que usaba Doctrine, y que ahora ya se mudaron a usar PDO directamente.

Lo que me refiero es usar un patrón como factory para crear tus objetos de una forma sencilla (y así optimizar códigos) por ejemplo:
Código PHP:
Ver original
  1. class Model_Factory
  2. {
  3.         pubic static function factory($sName, $aData = array())
  4.         {
  5.                   $sModelName = "Model_$sName";
  6.                   $Model = new $sModelName();
  7.  
  8.                   foreach ($aData as $sProperty => $sValue) {
  9.                           $sSetter = 'set' . ucfirst($sProperty);
  10.                           $Model->$sSetter($sValue);
  11.                   }
  12.  
  13.                   return $Model;
  14.         }
  15. }

Y así podrías hacer algo así:
Código PHP:
Ver original
  1. public function fooAction()
  2. {
  3.           $aValues = $this->getRequest()->getPost();
  4.           // suponiendo que ya fueron validados
  5.           $Model = Model_Factory::factory('Productos', $aValues);
  6. }

El otro es para por ejemplo implementar funciones comunes a tus objetos que necesites, para poder pasarlos a tu ORM.

Saludos.