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<?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) {
$update['titulo'] = "'".trim($data['titulo'])."'"; $update['descripcion'] = "'".trim($data['descripcion'])."'"; $update['keywords'] = "'".trim($data['keywords'])."'"; $update['email'] = "'".trim($data['email'])."'"; $update['user_email'] = "'".trim($data['useremail'])."'"; $update['pass_email'] = "'".trim($data['passemail'])."'"; $update['port_email'] = "'".trim($data['portemail'])."'"; $update['host_email'] = "'".trim($data['hostemail'])."'"; $update['lenguajes_id'] = "'".trim($data['idioma'])."'"; $update['themes'] = "'".trim($data['themes'])."'"; $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 originalclass 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->modelo(array('lenguajes','configuracionSitio')); $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());
$this->Debug->log($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