Retroceder   Foros del Web > Programación para sitios web > PHP > PHP orientado a objetos

Respuesta
 
Herramientas Desplegado
Antiguo 12-mar-2008, 17:07   #1 (permalink)
jerkan tiene algunos puntos positivos de karma
 
Avatar de jerkan
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.362
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.
__________________
jerkan.net
jerkan está desconectado   Responder Citando
Antiguo 12-mar-2008, 17:49   #2 (permalink)
zsamer tiene algunos puntos positivos de karma
 
Fecha de Ingreso: noviembre-2003
Mensajes: 764
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?
zsamer está desconectado   Responder Citando
Antiguo 12-mar-2008, 18:01   #3 (permalink)
Moderador
GatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy pronto
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 11.600
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.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 13-mar-2008, 03:45   #4 (permalink)
jerkan tiene algunos puntos positivos de karma
 
Avatar de jerkan
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.362
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.
__________________
jerkan.net
jerkan está desconectado   Responder Citando
Antiguo 13-mar-2008, 09:18   #5 (permalink)
Moderador
GatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy pronto
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 11.600
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.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 15:54.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93