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
<?php /** * @package Punk Framework * @copyright Copyright (C) 2010 Onírico Sistemas. Todos los derechos reservados. * @version 0.2 * @author Lucas M. Sastre * @link http://www.oniricosistemas.com * @name UsuariosModel.php */ class ConfiguracionSitio extends Modelo { /** * Devuelve la configuracion guardada en la base de datos * @version 0.2 * @author Lucas M. sastre * @access public * @name listarConfiguracion * @return array */ public function listarConfiguracion() { $sql = 'SELECT * FROM core_configuracion AS cc INNER JOIN core_lenguajes AS cl ON cl.id = cc.lenguajes_id'; $consulta = $this->db->QueryArray($sql); return $consulta; } /** * Gurda la configuración del sitio * @version 0.1 * @author Lucas M. sastre * @access public * @name guardarConfiguracion * */ public function guardarConfiguracion($data) { $filtro['id'] = 1; if(!$consulta=$this->db->UpdateRows("core_configuracion", $update,$filtro)) { $consulta=$this->db->Error(); } return $consulta; } } ?>
y en mi controlador lo uso asi:
Código PHP:
Ver original
class configuracionController extends Controller { /** * Constructor de la clase para instanciar los modelos * @version 0.2 * @author Lucas M. sastre * @access public * @name __contruct * */ function __construct() { //llamo al consructor de Controller.php parent::__construct(); //creo una instancia de los modelos. $this->validarSession($this->Session->get('admin'.$this->Config->get('app'))); } /** * Index del controlador * @version 0.1 * @author Lucas M. sastre * @access public * @name index * */ public function index() { $datos = $this->validarDatos($this->ConfiguracionSitio->listarConfiguracion()); if(!$datos) { $data['datos'] = $this->validarDatos($this->ConfiguracionSitio->listarConfiguracion()); } else { $data['datos'] = $datos; } $data['breadCrumb'] = $this->BreadCrumb->listarBreadCrumb($_REQUEST); if($this->Session->get('mensaje')) { $data['mensaje'] = $this->Session->get('mensaje'); $this->Session->del('mensaje'); } $data['themes'] = $this->themes(); $data['idioma'] = $this->Lenguajes->listadoLenguajes(); $this->Vistas->show('index.php',$data); }
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