Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   Controlador muy grande (http://www.forosdelweb.com/f68/controlador-muy-grande-565489/)

jerkan 12/03/2008 17:07

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.

zsamer 12/03/2008 17:49

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?

GatorV 12/03/2008 18:01

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.

jerkan 13/03/2008 03:45

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.

GatorV 13/03/2008 09:18

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.


La zona horaria es GMT -6. Ahora son las 08:51.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.