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

Objeto que usarán todos los controladores

Estas en el tema de Objeto que usarán todos los controladores en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola. Ahí voy con otra pregunta de aprendiz. Estoy implementando el modelo MVC. Por ahora tengo el FrontController, y también una clase IndexControlador, con una ...
  #1 (permalink)  
Antiguo 25/11/2008, 17:25
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
Objeto que usarán todos los controladores

Hola. Ahí voy con otra pregunta de aprendiz.

Estoy implementando el modelo MVC. Por ahora tengo el FrontController, y también una clase IndexControlador, con una función index() dentro de ella, que muestra la vista index.php.

He creado una clase para el menú de opciones. Dado que el menú irá en todas las páginas que tengan vista, ¿dónde creéis que es el mejor sitio para instanciarla? He probado a crear el objeto en el Front Controller, pero entonces no está al alcance de los controladores. ¿Se la tendría que pasar al constructor de cada controlador? ¿Me estoy explicando fatal?

Gracias.
  #2 (permalink)  
Antiguo 25/11/2008, 22:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Objeto que usarán todos los controladores

Porque no la instancias en dado caso en el FrontController, y la guardas en el Registro, de esa forma la puedes leer desde todos los controladores.

Saludos.
  #3 (permalink)  
Antiguo 26/11/2008, 02:48
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
Respuesta: Objeto que usarán todos los controladores

¿Qué es el Registro?

Gracias.
  #4 (permalink)  
Antiguo 26/11/2008, 07:45
Avatar de Lord Kazuky  
Fecha de Ingreso: junio-2006
Ubicación: 7F.00.00.01
Mensajes: 123
Antigüedad: 17 años, 10 meses
Puntos: 5
Respuesta: Objeto que usarán todos los controladores

El registro, es una 'solución' de diseño orientado a objetos (viene del Patron de Diseño Registry) destinada a proveer una estructura de almacenamiento de objetos y valores, de forma centralizada, controlada y facilmente accesible desde cualquier parte de la aplicación. (Lo dije bien ??)

La idea es que en vez de usar variables globales o cosas por el estilo, utilices el 'registro' para almacenar todo lo que necesites que sea 'global', pueden ser objetos, arreglos, o simples variables.

Para tener en cuenta:
* La clase del registro debe ser accesible desde cualquier parte del programa.
* Solo debe existir por cada ejecución (o Request al servidor) una instancia del Registro. Esto se logra implementando el patrón 'Singleton'.
* Ten cuidado con lo que guardes en el registro, ya que quedará disponible de forma global. La misma consideración como si usaras variables globales.
* Los objetos o datos que ingresen al registro solo permanecen por ejecución o request al servidor en la implementación basica del registro. Si necesitas que 'persistan' debes hacer un tratamiento adicional.

Por ahi por la web hay algunas implementaciones en PHP (creo debo tener una por ahi en algun lado..), también entre las librerias de Zend hay un Zend_Registry.
__________________
Saludos.
"Cualquier tonto puede escribir código que un computador entiende. Los buenos programadores escriben código que los humanos pueden entender. ;)"
  #5 (permalink)  
Antiguo 26/11/2008, 13:37
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
Respuesta: Objeto que usarán todos los controladores

Ah, vale. Captado. Gracias a los dos.
  #6 (permalink)  
Antiguo 26/11/2008, 13:57
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Objeto que usarán todos los controladores

Pregunta:

¿Estaría mal si se implementa singleton en dicha clase y se llama directamente desde cada controlador?


Saludos
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #7 (permalink)  
Antiguo 26/11/2008, 14:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Objeto que usarán todos los controladores

No, depende del contexto, y de la clase, por eso es que la clase de Registro debe de ser Estatica por lo general.

Saludos.
  #8 (permalink)  
Antiguo 26/11/2008, 21:56
Avatar de ArrauKano  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 21 años, 5 meses
Puntos: 4
Respuesta: Objeto que usarán todos los controladores

Si estas trabajando con el Zend Framework, a lo mejor te conviene también tener tu clase como "helper", debido a que los controladores tiene por defecto un método de "autocarga" de helpers.

Por ejemplo, cuando tengo formularios, los suelo crear en helpers y los uso desde el controlador llamandolos casi directamente.

Por el contrario, cosas más "importantes" como el objeto de vista, las guardo en el registry.

Creo que depende mucho del "contexto" del propósito de tu clase.
__________________
Blog | Tecnosquad
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 03:55.