Inicio > Symfony > Symfony - mejor manejo del controlador y el modelo

Symfony - mejor manejo del controlador y el modelo

Hemos visto en los diferentes manuales de Symfony, la forma de guardar, actualizar y eliminar datos, y la mayoría colocan el código directamente en la acción. Un ejemplo de esto sería:

class mimoduloActions extends sfActions
{
  public function executeUpdate()
  {
    $user = new User();
    $user->setIdUsuario($this->getRequestParameter('idUsuario');
    $user->setIdUsuario($this->getRequestParameter('nombreUsuario');
    $user->setIdUsuario($this->getRequestParameter('direccionUsuario');
    $user->save();
  }
}

Muy bien. En mi opinión, tomando en cuenta el concepto del Modelo, este representa las estructuras de datos. Típicamente el modelo de clases contendrá funciones para consultar, insertar y actualizar información de la base de datos.
Fuente: http://www.webtutoriales.com/tutoriales/programacion/modelo-vista-controlador.54.html

Por esta razón, este código de insertar un registro debería estar en el modelo. Quedaría así.
En la acción:

class mimoduloActions extends sfActions
{
  public function executeUpdate()
  {
      // Envia los parametros enviados para insertar el nuevo registro
      UserPeer::registerUser($this->getRequest());
  }
}

Y en el modelo:

class UserPeer extends BaseUserPeer
{
  /**
    * Funcion que registra los datos principales del usuario
    *
    * @param object $parameter
  */
  public static function registerUser($parameters)
  {
    $user = new User();
    $user->setIdUsuario($parameter->getParameter('idUsuario');
    $user->setIdUsuario($parameter->getParameter('nombreUsuario');
    $user->setIdUsuario($parameter->getParameter('direccionUsuario');
    $user->save();
  }
}

De esta manera, tenemos un código mas limpio y estamos cumpliendo con el patrón MVC.

Hasta la próxima - Henry Vallenilla - hvallenilla@aberic.com

Compartir información en: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • MisterWong
  • Y!GG
  • Webnews
  • Digg
  • del.icio.us
  • StumbleUpon
  • Reddit
  • Ask
  • De.lirio.us
  • Facebook
  • LinkedIn
  • Live-MSN
  • MySpace
  • YahooMyWeb
  • email
  • Google Bookmarks
  • TwitThis
  • YahooBuzz
Categories: Symfony Tags:
  1. Domingo, 7 de Junio de 2009 a las 10:49 | #1

    Excelente aporte pana.

  1. Sin trackbacks aún.