Foros del Web » Programando para Internet » PHP » Zend »

DataMapper en ZF, sin Orm

Estas en el tema de DataMapper en ZF, sin Orm en el foro de Zend en Foros del Web. Hola, estoy buscando la forma de hacer un mapeo en zend framework sin utilizar Doctrine, ni ningun orm. Quizas alguien ya haya hecho algo al ...
  #1 (permalink)  
Antiguo 10/02/2011, 18:29
pur
 
Fecha de Ingreso: agosto-2007
Mensajes: 98
Antigüedad: 16 años, 7 meses
Puntos: 4
DataMapper en ZF, sin Orm

Hola, estoy buscando la forma de hacer un mapeo en zend framework sin utilizar Doctrine, ni ningun orm.
Quizas alguien ya haya hecho algo al respecto y lo tenga claro y me pueda dar alguna guia, aunque sea sencilla, como para empezar.

Saludos.
  #2 (permalink)  
Antiguo 10/02/2011, 18:44
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: DataMapper en ZF, sin Orm

pur

Zend Framework hace eso con Zend_Db_Table, puedes tener una capa intermedia con setters y getters de los campos de la tabla de BD, donde coloques los datos traidos con Zend_Db_Table que genera una coleccion de Zend_Db_Table_Rowset.

Saludos
  #3 (permalink)  
Antiguo 10/02/2011, 19:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: DataMapper en ZF, sin Orm

O en dado caso si no necesitas tanta complejidad puedes usar directo Zend_Db_Table y usar los Zend_Db_Table_Row que te genera como objetos.

Saludos.
  #4 (permalink)  
Antiguo 11/02/2011, 07:50
pur
 
Fecha de Ingreso: agosto-2007
Mensajes: 98
Antigüedad: 16 años, 7 meses
Puntos: 4
Respuesta: DataMapper en ZF, sin Orm

Muchas gracias, la duda es donde poner el mapper.

Tengo esto en:
miproyecto/application/modules/default/models/Autos.php
Código PHP:
Ver original
  1. class Default_Model_Autos extends Zend_Db_Table_Abstract    
  2. {
  3. protected $_name = 'autos';
  4. protected $_primary = 'id';
  5.  
  6. function vertodos(){
  7.        
  8.    $todos = $this->fetchAll();
  9.    return $todos;
  10.          
  11.         }
  12. }
Donde tengo que poner la clase AutosMapper?
En el mismo archivo?... o sea:
miproyecto/application/modules/default/models/AutosMapper.php
  #5 (permalink)  
Antiguo 11/02/2011, 08:05
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 2 meses
Puntos: 845
Respuesta: DataMapper en ZF, sin Orm

Lo que esta en el QuickStart no te sirve ?, lo que tendrias que tener en cuenta es que esta un poco desfasado, porque el mapper deberia estar en application/models/mappers:

Código PHP:
Ver original
  1. // application/models/mappers/Guestbook.php
  2. class Application_Model_Mapper_Guestbook
  3. {...}

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 11/02/2011, 10:25
pur
 
Fecha de Ingreso: agosto-2007
Mensajes: 98
Antigüedad: 16 años, 7 meses
Puntos: 4
Respuesta: DataMapper en ZF, sin Orm

Gracias masterpuppet, algo habia estado viendo.
El problema es que en el QuickStart no tienen en cuenta los modulos, y pensé que podía ser diferente trabajando con modulos.
  #7 (permalink)  
Antiguo 20/02/2011, 21:17
 
Fecha de Ingreso: abril-2009
Mensajes: 1
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: DataMapper en ZF, sin Orm

puedes hacerlo como ya dijeron con getters y setters y así manejar todos los campos de tu tabla como si fueran objetos

utilizando algo parecido

function __get ($name)
{
$method = "get" . $name;
if (! method_exists($this, $method)) {
throw new Exception('Invalid property ' . $name);
}
return $this->$method();
}

function __set ($name, $value)
{
$method = 'set' . $name;
if (! method_exists($this, $method)) {
throw new Exception('Invalid property '. $name);
}
$this->$method($value);
}

$table->titulo = "Titulo"
$table->save();

igual usando $_referenceMap y $_dependentTables para armar tu datamapper
  #8 (permalink)  
Antiguo 23/03/2011, 13:20
Avatar de juanca2626  
Fecha de Ingreso: junio-2004
Ubicación: Lima-Peru
Mensajes: 67
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: DataMapper en ZF, sin Orm

Cita:
Iniciado por masterpuppet Ver Mensaje
Lo que esta en el QuickStart no te sirve ?, lo que tendrias que tener en cuenta es que esta un poco desfasado, porque el mapper deberia estar en application/models/mappers:

Código PHP:
Ver original
  1. // application/models/mappers/Guestbook.php
  2. class Application_Model_Mapper_Guestbook
  3. {...}

Saludos.

hola masterpuppet, puedes decir porque dices que el quickstart de zend esta desfasado, de donde sacas que los mapper deben estar en otra carpeta y no dentro de model. estoy empezando con esto de los mapper y me gusta esa idea de ponerlo en otra carpeta todos los mapper pero no he encontrado info de esto.

Saludos.
  #9 (permalink)  
Antiguo 23/03/2011, 14:10
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 2 meses
Puntos: 845
Respuesta: DataMapper en ZF, sin Orm

Cita:
Iniciado por juanca2626 Ver Mensaje
hola masterpuppet, puedes decir porque dices que el quickstart de zend esta desfasado, de donde sacas que los mapper deben estar en otra carpeta y no dentro de model. estoy empezando con esto de los mapper y me gusta esa idea de ponerlo en otra carpeta todos los mapper pero no he encontrado info de esto.

Saludos.
Hola juanca,

si estas con las últimas versiones de Zend podes ir a la clase Zend_Application_Module_Autoloader y comprobar a donde mapea cada recurso, por ejemplo este es el mio:

Código PHP:
Ver original
  1. ...
  2. $this->addResourceTypes(array(
  3.             'dbtable' => array(
  4.                 'namespace' => 'Model_DbTable',
  5.                 'path'      => 'models/DbTable',
  6.             ),
  7.             'mappers' => array(
  8.                 'namespace' => 'Model_Mapper',
  9.                 'path'      => 'models/mappers',
  10.             ),
  11.             'form'    => array(
  12.                 'namespace' => 'Form',
  13.                 'path'      => 'forms',
  14.             ),
  15.             'model'   => array(
  16.                 'namespace' => 'Model',
  17.                 'path'      => 'models',
  18.             ),
  19.             'plugin'  => array(
  20.                 'namespace' => 'Plugin',
  21.                 'path'      => 'plugins',
  22.             ),
  23.             'service' => array(
  24.                 'namespace' => 'Service',
  25.                 'path'      => 'services',
  26.             ),
  27.             'viewhelper' => array(
  28.                 'namespace' => 'View_Helper',
  29.                 'path'      => 'views/helpers',
  30.             ),
  31.             'viewfilter' => array(
  32.                 'namespace' => 'View_Filter',
  33.                 'path'      => 'views/filters',
  34.             ),
  35.         ));
  36. ...

Model_Mapper mapea a models/mappers.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #10 (permalink)  
Antiguo 24/03/2011, 09:37
Avatar de juanca2626  
Fecha de Ingreso: junio-2004
Ubicación: Lima-Peru
Mensajes: 67
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: DataMapper en ZF, sin Orm

Cita:
Iniciado por masterpuppet Ver Mensaje
Hola juanca,

si estas con las últimas versiones de Zend podes ir a la clase Zend_Application_Module_Autoloader y comprobar a donde mapea cada recurso, por ejemplo este es el mio:

Código PHP:
Ver original
  1. ...
  2. $this->addResourceTypes(array(
  3.             'dbtable' => array(
  4.                 'namespace' => 'Model_DbTable',
  5.                 'path'      => 'models/DbTable',
  6.             ),
  7.             'mappers' => array(
  8.                 'namespace' => 'Model_Mapper',
  9.                 'path'      => 'models/mappers',
  10.             ),
  11.             'form'    => array(
  12.                 'namespace' => 'Form',
  13.                 'path'      => 'forms',
  14.             ),
  15.             'model'   => array(
  16.                 'namespace' => 'Model',
  17.                 'path'      => 'models',
  18.             ),
  19.             'plugin'  => array(
  20.                 'namespace' => 'Plugin',
  21.                 'path'      => 'plugins',
  22.             ),
  23.             'service' => array(
  24.                 'namespace' => 'Service',
  25.                 'path'      => 'services',
  26.             ),
  27.             'viewhelper' => array(
  28.                 'namespace' => 'View_Helper',
  29.                 'path'      => 'views/helpers',
  30.             ),
  31.             'viewfilter' => array(
  32.                 'namespace' => 'View_Filter',
  33.                 'path'      => 'views/filters',
  34.             ),
  35.         ));
  36. ...

Model_Mapper mapea a models/mappers.

Saludos.

gracias masterpuppet , yo tengo la version ZendFramework-1.10.7, no es de las ultimas pero tengo la misma extructura. una pregunta, para crear un archivo mapper por medio de una consola usando zf create, aun no esta disponible no ??
tendria que crear una carpeta dentro de models llamada mappers y ahi crear manualmente todo los archivos php mapper verdad?. o tienes alguna otra manera de crearlo.

Gracias.

Saludos.
  #11 (permalink)  
Antiguo 24/03/2011, 11:48
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 2 meses
Puntos: 845
Respuesta: DataMapper en ZF, sin Orm

Efectivamente, deberias crear la carpeta y ficheros a mano, aunque la mejor opción es crear el provider para el mapper.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #12 (permalink)  
Antiguo 25/03/2011, 08:03
Avatar de juanca2626  
Fecha de Ingreso: junio-2004
Ubicación: Lima-Peru
Mensajes: 67
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: DataMapper en ZF, sin Orm

Cita:
Iniciado por masterpuppet Ver Mensaje
Efectivamente, deberias crear la carpeta y ficheros a mano, aunque la mejor opción es crear el provider para el mapper.

Saludos.

Gracias masterpuppet, veré de que manera lo hago, también tengo unas dudas respecto a este tema, luego la posteare, quizás lo haga por aquí o cree otro post.

Saludos.

Etiquetas: orm
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:51.