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

Controlador muy grande

Estas en el tema de Controlador muy grande en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Tengo una duda acerca del tamaño de los controladores. En un caso concreto, tengo uno con más de 1500 líneas y todavía no es definitivo. ...
  #1 (permalink)  
Antiguo 12/03/2008, 17:07
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Pregunta Controlador muy grande

Tengo una duda acerca del tamaño de los controladores. En un caso concreto, tengo uno con más de 1500 líneas y todavía no es definitivo. ¿Es ésto poco eficiente? No lo he comprobado pero seguramente lo es a nivel de tiempo y memoria.

De este modo, cada vez que se carga el controlador se carga entero. ¿Alternativas?
· Hacer includes/requires lo que conlleva aumentar el número de archivos del proyecto considerablemente.
· Añadir un nuevo nivel de controlador. Controlador padre -> controlador hijo.

Espero vuestros consejos y/o puntos de vista.
  #2 (permalink)  
Antiguo 12/03/2008, 17:49
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: Controlador muy grande

Estas lanzando a Diestra & Siniestra código spaghetti, si vas a programar OOP tiene que ser 100% OOP, lo cual significa que debes hacer un diseño bien estructurado, una arquitectura (UML), donde cada objeto/clase tenga una tarea espesifica y bien definida, tienes que delegar las tareas/funcionalidades/trigger/etc a objetos individuales que interactuen con el contexto , no se trata de lanzar 1500 lineas de puro código php todo mesclado (como ensalada).

Tiene que tener una lógica, orden, un buen diseño OOP en tu sistema.

¿cómo vas a mantener un mamorreto de 1500 lineas?
  #3 (permalink)  
Antiguo 12/03/2008, 18:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Controlador muy grande

Concuerdo con zsamer, seguramente puedes delegar tareas a otros objetos / controladores, recuerda que la tarea del controlador es la de enlazar los resultados, por lo que puede echar mano de otros objetos para hacer tareas especificas, por ejemplo:
Código PHP:
class Controller {
     public function 
run() {
              
$user $this->usersModel->findByPk(1);
              
$data['user'] = $user;
              
$calc = new MortageCalculator($user->userType);
              
$data['mortage'] = $calc->calculateMortage();
              
$data['rate'] = $calc->getUsedRate();

              
$this->view->assign"data"$data );
     }

Saludos.
  #4 (permalink)  
Antiguo 13/03/2008, 03:45
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Controlador muy grande

El ejemplo de GatorV está muy bien pero, en la práctica, no es de fácil lectura apelotonar todas las líneas ni dejar de poner comentarios. Si yo cojo el controlador del que os hablo y junto todas las lineas y quito los comentarios lo mismo se me queda en 500 lineas.

Supongo que acabaré por adoptar la solución controlador padre->controlador hijo.
  #5 (permalink)  
Antiguo 13/03/2008, 09:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Controlador muy grande

Si lo que hace que crezca son comentarios, no te preocupes, al PHP invocar al parser borra todos los comentarios de la clase, así que te quedas solo con lo que es el "código" puro y es lo que ejecuta PHP.

De hecho es recomendable tener buenos comentarios en la clase, obviamente no todos, y dejar la parte de la documentación aparte.

Saludos.
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:40.