Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

PHP OO duda ORM, activeTable, etc

Estas en el tema de duda ORM, activeTable, etc en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, estoy analizando usar un ORM o activeTable en mi framework MVC, he leido articulos como http://web2development.blogspot.com/...iverecord.html y los manuales de doctrine o propel. Bien ...
  #1 (permalink)  
Antiguo 11/02/2011, 08:48
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
duda ORM, activeTable, etc

Hola,
estoy analizando usar un ORM o activeTable en mi framework MVC, he leido articulos como http://web2development.blogspot.com/...iverecord.html y los manuales de doctrine o propel. Bien yo venia programando basandome en MVC, en mi Modelo tenia por ejemplo esto:
Código PHP:
Ver original
  1. <?php
  2.     /**
  3.      * @package Punk Framework
  4.      * @copyright Copyright (C) 2010 Onírico Sistemas. Todos los derechos reservados.
  5.      * @version 0.2
  6.      * @author Lucas M. Sastre
  7.      * @link http://www.oniricosistemas.com
  8.      * @name UsuariosModel.php
  9.      */
  10.  
  11.     class ConfiguracionSitio extends Modelo {
  12.  
  13.     /**
  14.      * Devuelve la configuracion guardada en la base de datos
  15.      * @version 0.2
  16.      * @author Lucas M. sastre
  17.      * @access public
  18.      * @name listarConfiguracion
  19.  
  20.      * @return array
  21.      */
  22.     public function listarConfiguracion() {
  23.         $sql = 'SELECT * FROM core_configuracion AS cc
  24.             INNER JOIN core_lenguajes AS cl ON cl.id = cc.lenguajes_id';
  25.         $consulta = $this->db->QueryArray($sql);
  26.  
  27.         return $consulta;
  28.     }
  29.     /**
  30.      * Gurda la configuración del sitio
  31.      * @version 0.1
  32.      * @author Lucas M. sastre
  33.      * @access public
  34.      * @name guardarConfiguracion
  35.  
  36.      *
  37.      */
  38.     public function guardarConfiguracion($data) {
  39.         $update['titulo'] = "'".trim($data['titulo'])."'";
  40.         $update['descripcion'] = "'".trim($data['descripcion'])."'";
  41.         $update['keywords'] = "'".trim($data['keywords'])."'";
  42.         $update['email'] = "'".trim($data['email'])."'";
  43.         $update['user_email'] = "'".trim($data['useremail'])."'";
  44.         $update['pass_email'] = "'".trim($data['passemail'])."'";
  45.         $update['port_email'] = "'".trim($data['portemail'])."'";
  46.         $update['host_email'] = "'".trim($data['hostemail'])."'";
  47.         $update['lenguajes_id'] = "'".trim($data['idioma'])."'";
  48.         $update['themes'] = "'".trim($data['themes'])."'";
  49.         $filtro['id'] = 1;
  50.  
  51.         if(!$consulta=$this->db->UpdateRows("core_configuracion", $update,$filtro)) {
  52.         $consulta=$this->db->Error();
  53.         }
  54.  
  55.         return $consulta;
  56.     }
  57.     }
  58. ?>

y en mi controlador lo uso asi:
Código PHP:
Ver original
  1. class configuracionController extends Controller {
  2.  
  3.     /**
  4.      * Constructor de la clase para instanciar los modelos
  5.      * @version 0.2
  6.      * @author Lucas M. sastre
  7.      * @access public
  8.      * @name __contruct
  9.      *
  10.      */
  11.     function __construct() {
  12.         //llamo al consructor de Controller.php
  13.         parent::__construct();
  14.         //creo una instancia de los modelos.
  15.         $this->modelo(array('lenguajes','configuracionSitio'));
  16.         $this->validarSession($this->Session->get('admin'.$this->Config->get('app')));
  17.     }
  18.  
  19.     /**
  20.      * Index del controlador
  21.      * @version 0.1
  22.      * @author Lucas M. sastre
  23.      * @access public
  24.      * @name index
  25.      *
  26.      */
  27.     public function index() {
  28.         $datos = $this->validarDatos($this->ConfiguracionSitio->listarConfiguracion());
  29.         $this->Debug->log($this->ConfiguracionSitio->listarConfiguracion());
  30.         if(!$datos) {
  31.         $data['datos'] = $this->validarDatos($this->ConfiguracionSitio->listarConfiguracion());
  32.         }
  33.         else {
  34.         $data['datos'] = $datos;
  35.         }
  36.         $data['breadCrumb'] = $this->BreadCrumb->listarBreadCrumb($_REQUEST);
  37.         if($this->Session->get('mensaje')) {
  38.         $data['mensaje'] = $this->Session->get('mensaje');
  39.         $this->Session->del('mensaje');
  40.         }
  41.  
  42.         $data['themes'] = $this->themes();
  43.         $data['idioma'] = $this->Lenguajes->listadoLenguajes();
  44.         $this->Vistas->show('index.php',$data);
  45.     }

Pero viendo la info en los links anteriores, me generan algunas dudas como por ejemplo:

1- Si implemento uno de estos sistemas, deberia dejar de usar mis modelos tal cual los tengo ahora?
2- Si implemento uno de estos sistemas, el método por ejemplo save(), lo debo ejecutar en un modelo o en el controlador?

Espero que me puedan aclarar estas dudas para poder decidirme que sistema implementar.
Desde ya muchas gracias

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




La zona horaria es GMT -6. Ahora son las 02:15.