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

ejemplo para orientarme en el diseño de 3 capas

Estas en el tema de ejemplo para orientarme en el diseño de 3 capas en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola. Me gustaría ir mejorando mi tecnica de programación y me estoy documentando sobre algo llamado "diseño en 3 capas", "modelo vista controlador" segun he ...
  #1 (permalink)  
Antiguo 05/08/2008, 14:53
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
ejemplo para orientarme en el diseño de 3 capas

Hola.

Me gustaría ir mejorando mi tecnica de programación y me estoy documentando sobre algo llamado "diseño en 3 capas", "modelo vista controlador" segun he leido en estos enlaces:

http://phpsenior.blogspot.com/2006/0...lemas-con.html

http://es.wikipedia.org/wiki/Modelo_Vista_Controlador

tengo una idea de como seria este tipo de "programación" o mas bien quizas de un "diseño de un proyecto".

En estos dias empiezo con un proyecto y me gustaria aplicarle estos conceptos.

Me gustaria recibir vuestras opiniones para saber si existe alguna forma de hacerlo mejor y si realmente aplico el diseño 3 capas, mvc.

Este es el proyecto

/gestión
->clases = se guardan clases/librerias. Algunas son para el manejo de imagenes,sesiones,mysql.

-> procesadores = recogen,insertan,modifican registros en la base de datos utilizando las clases(directorio clases). Recogen los datos de los usuarios (formularios) para insertarlos en la base de datos. Y alguna cosilla mas.

-> contenido = aqui hay mas carpetas, cada carpeta la entiendo como un modulo y dentro de esta estan los ficheros que necesita este modulo para funcionar.

Ej: modulo -> "articulos mas leidos". Tiene un fichero que muestra el titulo de los articulos mas leidos con estilo css, html. Este fichero incluye (include) otro que esta en la carpeta procesadores y que se conecta a la BD, obtiene los titulos, y luego son mostrados en el fichero del modulo.

index.php -> es una página con su correspondiente diseño. El menu de esta pagina siempre llama a la misma pero pasandole un parametro.

Ej:
index.php?donde=noticias
index.php?donde=articulos_mas_leidos
index.php?donde=agenda
....

Dentro de este index se llama (include) a un fichero en la carpeta procesadores. Y segun el parametro se encarga de coger un modulo u otro de la carpeta contenido.

Resumidamente es asi mas o menos como estoy llevando el proyecto y segun he entendido del modelo 3 capas y mvc.

Espero vuestros comentarios, gracias y perdon por el tocho!!
  #2 (permalink)  
Antiguo 05/08/2008, 15:03
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
Respuesta: ejemplo para orientarme en el diseño de 3 capas

Hola nx00,

Si buscas en el foro veras muchos temas donde se han propuesto las mejores formas y métodos para trabajar con MVC, y usando 100% OOP.

Saludos.
  #3 (permalink)  
Antiguo 05/08/2008, 20:08
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: ejemplo para orientarme en el diseño de 3 capas

Cita:
Me gustaria recibir vuestras opiniones para saber si existe alguna forma de hacerlo mejor y si realmente aplico el diseño 3 capas, mvc.
Lo que no veo que sean lo mismo, sí son parecidos, es un diseño de 3 o más capas y el patrón MVC.

Cita:
Este es el proyecto
¿Y por qué no sigues el ejemplo genérico que planteo en el artículo? ¿para qué reinventar la rueda?

index.php -> presentación -> dominio -> persistencia

Diagramadeclase1.png

Lo que puedes agregar, es un paquete "tools" o similar donde tendrás las clases genéricas que podrán ser usadas por cualquiera de las clases de cada capa.

3capas_tools_bien.png

Por ejemplo, si tienes una clase Log que usas en primera instancia en el paquete "dominio", verás con el tiempo que podrás requerir usarlo también en los demás paquetes. No sería conveniente que además de las relaciones inciales entre paquetes, existieran relaciones invertidas entre los mismos (cíclicas) todo por querer usar la clase Log.

De todas formas, te sugiero ir por etapas y simplificar aún más el diseño, por lo menos al principio.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #4 (permalink)  
Antiguo 06/08/2008, 01:48
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: ejemplo para orientarme en el diseño de 3 capas

gracias por las respuestas GatorV y enriqueplace.

siguiendo tu consejo

Cita:
De todas formas, te sugiero ir por etapas y simplificar aún más el diseño, por lo menos al principio.
He vuelto a leer sobre mvc, llegando a la siguiente conclusión:

3 directorios

/- modelo => clases php para la gestión de mysql.
/- controlador => recibe datos del usuario (vista) y los pasa al modelo. Recibe datos del modelo y los pasa al usuarios (vista).
/- vista => los ficheros que muestran los datos recibidos por el controlador.
index.php => página principal donde segun las acciones del usuario se cargan unas vistas u otras.

Segun este diseño, en el momento de querer amplicarlo bastaria con añadir un controlador y una vista.

¿ De esta forma se aplica el modelo mvc ?

Al decirme esto:

Cita:
Lo que no veo que sean lo mismo, sí son parecidos, es un diseño de 3 o más capas y el patrón MVC.
me he centrado en el modelo mvc para este proyecto.
  #5 (permalink)  
Antiguo 06/08/2008, 06:53
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: ejemplo para orientarme en el diseño de 3 capas

Cita:
me he centrado en el modelo mvc para este proyecto.
Ok, no es lo mismo hacer un diseño de 3 capas que un MVC (como inicialmente lo planteaste).

Si quieres aprender cómo se hace un MVC de cero, adelante, pero me parece más productivo de todas formas usar un esquema existente como Zend Framework, y de paso entenderás perfectamente cómo se hace un MVC y habrás incorporado además muchas herramientas a futuro.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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 05:30.