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

Escenario de practica MVC a discusión.

Estas en el tema de Escenario de practica MVC a discusión. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, Me he propuesto aprender Programación Orientada a Objetos, y lo que me interesa es saber aplicar bien los conceptos. Me interesa crear alguna aplicación ...
  #1 (permalink)  
Antiguo 09/05/2007, 06:55
 
Fecha de Ingreso: mayo-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 0
Escenario de practica MVC a discusión.

Hola,

Me he propuesto aprender Programación Orientada a Objetos, y lo que me interesa es saber aplicar bien los conceptos. Me interesa crear alguna aplicación a modo de practica basada en el patrón Modelo-Vista-Controlador.

Despues de darle bastantes vueltas, he podido sacar mis primeras conclusiones. Me parece importante que en una aplicación MVC las librerías estén separadas de la aplicación. Pero pienso, que aquí entran dos conceptos en juego. La lógica que sigue cada uno en su codificación y la estructura de directorios y archivos, pienso que esta estructura debe ser independiente de la lógica, para así, preservar que el codigo sea mantenible. Por ello lo primero que me ha preocupado es eso... es como si fuesen los cimientos. He pensado en hacer algo así:

Código:
/
	- apps
		- app1
			- css
			- images
			  config.php
			  index.php
			  
	- libs
		- models
			- model1
			- model2
			- ...
		- views
		 	- view1
			- view2
			- ...
		- controllers
		 	- controller1
				- action1
				- action2
				- ...
			- controller2
				- action1
				- action2
				- ...
			- ...
Se que muy provablemente va a ser criticada esta estructura... Pero espero sean criticas constructivas.
La explico un poco, cuales son intenciones digamos...

Me gustaría ser capaz de poder crear dentro de "/libs" una serie de modelos, vistas y controladores de forma generica, para que puedan ser usados independientemente por la aplicación.

La aplicación debería comenzar con "/apps/app1/index.php" con los parametros para que el router encuentre los modelos vistas y controladores de la pagina principal y a partir de ahí el router seguiría respondiendo a los eventos y cargando documentos y actuando en consecuencia los demás documentos.

El archivo "/apps/app1/index.php" además debería cargar "/apps/app1/config.php" con una clase "config_app1" por ejemplo, que cargaría los atributos con los valores para la configuración de conexión a la base de datos y los PATHS de relevantes, así como el path de librerías "/libs" de los modelos controladores y vistas, con el único fin de asignar a la aplicación donde están las librerías... de esta forma pienso se pueden independizar la localización de las librerías en cuanto a estructura de directorios. Se me ocurre declarar constantes de clase para asignar estos atributos.

Me gustaría recibir criticas constructivas y también vuestra opinión sobre el archivo config.php Mmmmmm... a la hora de abstraer las clases y de usarlas conjuntamente me lio un poco, por cuestiones de generalización/especificidad o quizá por falta de saber ubicar correctamente las clases. Habia pensado hacer una aplicación que necesitase usuarios, posts, bases de datos como escenario de practica.

Por ultimo termino diciendo que si a alguien que esté interesado en la POO le parece interesante... Me gustaría poder hablar por chat y colaborar en esto con alguien más. Podriamos tener cada uno una estructura así y discutirla, hablar por donde comenzar, seguir, etc...

Última edición por Semz; 10/05/2007 a las 09:20
  #2 (permalink)  
Antiguo 10/05/2007, 09:19
 
Fecha de Ingreso: mayo-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 0
Re: Escenario de practica MVC a discusión.

Nadie ? joo
No sep... a mi me pareció una buena iniciativa :S
Enga... exaros alguna colabo... joo
  #3 (permalink)  
Antiguo 10/05/2007, 10:06
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: Escenario de practica MVC a discusión.

Es muy subjetivo encontrar la mejor forma de hacerlo, si buscas en este mismo foro hay miles de temas sobre MVC y la mejor forma de organizar la ruta de los directorios.

Sobre tu estructura, no es mucho de mi agrado prefiero una estructura donde puedas tener todo lo mas independiente, que nada dependa de nada y que sea mas facil de re-utilizar.
  #4 (permalink)  
Antiguo 10/05/2007, 23:48
 
Fecha de Ingreso: mayo-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 0
Re: Escenario de practica MVC a discusión.

GatorV Gracias por tu respuesta :)

Uish... reconozco que a lo mejor he pretendido ser un poco sibarita sí, y querer encontrar la mejor forma.

Busco posts de vez en cuando y por ejemplo, encontré hace unas semanas uno en que ejemplizabas un router, que me vino muy bien para entender, en que consistían, como se hacían etc...

Pero a veces me asaltan las dudas y, por eso mismo, aunque leo los posts, hice un post intentando fuese lo mas completo posible, pero veo que no es algo productivo.

Mas bien era para tratar de encontrar sugerencias de que camino tomar y por cual desistir...

Respecto a la estructura, no entiendo por que no sería independiente... ¿ porqué no lo sería GatorV ?

Gracias de nuevo
  #5 (permalink)  
Antiguo 11/05/2007, 08:12
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: Escenario de practica MVC a discusión.

Imagina que tienes un servidor donde vas a hospedar múltiples aplicaciones, buscas que sean independientes lo mas posible una de otra.

Código:
http://localhost/app1
http://localhost/app2
http://localhost/app3
Lo que buscas es que tus librerías/framework/infraestructura sea accesible por las 3 aplicaciones, es por eso que las montas en un directorio aparte:

Código:
/wwwroot/libraries/ <- Librerías del sistema (fuera del WWWRoot)
/wwwroot/htdocs/app1/ <- Aplicacion 1
/wwwroot/htdocs/app2/
/wwwroot/htdocs/app3/
/wwwroot/htdocs/Assets/ <- Archivos de soporte de la librería
Así puedes tener completa independencia de tus aplicaciones y de donde esta la librería fuente que se encarga de realizar todo el proceso.

Ahora en cada aplicación esta debe de contener sus controladores, modelos, y vistas, estas son independientes de la librería fuente y son únicos para cada aplicación.

Espero con esto te des una idea, busca un post mio con una estructura de la aplicación como yo la propongo.

Salu2
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 11:25.