Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/01/2011, 10:10
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Validación en controller o en model?

@CodeIgniter, es una cuestión un poco diferente, te dejo este link para que le des una leida, si bien se puede validar en cualquier parte (modelo/controller) depende mucho del contexto de la aplicación y el tamaño.

Expongo el caso de una aplicación que manejo, utiliza mucho código para procesos batch (es decir no hay ningún GUI) y los datos se procesan de información que envían otros equipos. Si bien se podría validar en el controller, al ser procesos batch que interactuan con modelos en específico, hay que validar esos datos en el modelo y en dado caso informar al proceso que hay datos incorrectos.

Pero también al tener un GUI para consultas y ediciones, tiene que haber validación en el formulario, y si llegamos a un punto de casi repetir código (el validar con Zend_Form, y el validar en el modelo) pero son reglas muy diferentes las que se aplican, aunque por encima se vean similares (por ejemplo campo user no puede estar vacio).

El tenerlo de esa forma nos hace tener una mejor consistencia de datos para poder trabajar, y lo veo como la eterna discusión: "Validar en el cliente o en el servidor? (Javascript vs PHP)", y la respuesta casi siempre es la misma: en ambos.

Así que aquí mi respuesta sería igual: en ambos si la aplicación lo permite. Si es una aplicación sencilla mantenida por 1 programador igual te puedes evitar esa tarea, pero si estas trabajando en una aplicación por más de 2 programadores que cada quien esta encargado de una capa en especial, es mejor que cada capa tenga sus reglas de validación.