Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/07/2012, 23:50
cvelazquez
 
Fecha de Ingreso: julio-2012
Mensajes: 30
Antigüedad: 11 años, 9 meses
Puntos: 7
Respuesta: que es un MVC?

Es una forma de plantear la lógica de una aplicación diviendola en 3. Cada una de estas partes realiza funciones distintas, y tu forma de trabajo actual no es un MVC (no es separar sólo html de php).

Antes de explicar cada parte te pongo una imagen que hice (el mvc de ejemplo es cakephp):



Ahora, un controlador es la parte de aplicación que se encarga de recibir la solicitud del usuario para determinar los datos que se mostrarán.

El modelo es la parte donde se guardan, extraen, actualizan ó eliminan los datos (ya sea de una db, un rss, etc.). El controlador tiene interacción con esta parte precisamente para solicitarle los datos que enviará al usuario.

La vista es sólo la forma en la que se presentan los datos (usando la semántica del html). Lo que tu entiendes por html.

La importancia de un MVC viene en que la estructura, así como la interacción entre sus partes, es más ordenada ya que no realizas consultas a la db en una vista ni terminas con el famoso "spaguetti code". Además de permitir reutilizar código en otros proyectos.

Para aclarar un poco más el funcionamiento del MVC, observa bien la imagen que subí. Por cada tabla en la base de datos existe un modelo (en el cual se declaran validación de datos, funciones a realizar antes de guardar, despues, etc). También debe existir un controlador que trabaje con dicho modelo (no hay interacción directa entre la solicitud del usuario y el modelo, todo pasa por el controlador). Y las vistas sólo son eso, tu código html estilizado con css.

La mayoría de los MVC de php son en programación orientada a objetos (superclases y clases), además de un request dispatcher. Así que primero debes comprender bien el funcionamiento de estos (sobre todo los entornos de ejecución) y luego proseguir con algún framework.

El framework MVC más sencillo que he visto, principalmente por la buena documentación, es Code Igniter. El que más he usado es CakePHP pero su documentación, así como la de sus helpers, behaviors y components, no es la mejor que existe.

Aqui te saltará una pregunta ¿Qué es un helper y un component? Bueno, son otras clases que extienden la funcionalidad de las vistas y de los controladores.

Un buen consejo que siempre doy es: "Nunca trates de aprender algo de memoria. Mejor trata de comprenderlo y luego practica, y practica. La posterior memorización será natural y no forzada."

Si tienes dudas aquí sigo, sólo exponlas y trataré de responderla o ampliarla hahaha..C ya