Foros del Web » Programando para Internet » PHP »

que es un MVC?

Estas en el tema de que es un MVC? en el foro de PHP en Foros del Web. hola, que es esto, mvc,? estuve leyendo y dice algo sobre un modelo controlador de vistas. un patron..., no entiendo bien...seria como una manera estandar ...
  #1 (permalink)  
Antiguo 29/07/2012, 23:14
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
que es un MVC?

hola, que es esto, mvc,?
estuve leyendo y dice algo sobre un modelo controlador de vistas. un patron...,

no entiendo bien...seria como una manera estandar de realizar aplicaciones web, o un programa mas que complejo. dividir tareas de una manera organizada...
por medio del uso de clases. en PHP,
no tiene nada que ver con frameworks, no?

siguiendo este modelo, me organizo mejor, segun dice... por un lado van las vistas, interfaces... hacia el usuario, otro la logica, y otro la conexion entre ambos calculo,

por ejemplo para hacer un programa calculadora en php, separo en carpetas, en archivos php.. y lo voy haciendo...

basicamente antes de saber esto del modelo MVC, ya hacia yo, una pagina cualquiera, por un lado html y otro php... de manera separada...

esto solamente es?
  #2 (permalink)  
Antiguo 29/07/2012, 23:33
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: que es un MVC?

alguien me explica, por que se da importancia a saber lo que es el MODELO MVC?

acaso, alguien me pregunta,,,
¿haz realizado alguna aplicacion web?
yo contesto .
Si, claro, siguiendo el modelo MVC, que consiste en ... etc.etc la vista ..... el modelo,... controlador....etc

solo eso es ? un par de reglas , que naturalmente se sabe q funcionan asi, pero bueno al parecer, tendre q estudiarmelo de memoria...
  #3 (permalink)  
Antiguo 29/07/2012, 23:50
 
Fecha de Ingreso: julio-2012
Mensajes: 30
Antigüedad: 11 años, 8 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
  #4 (permalink)  
Antiguo 30/07/2012, 02:42
 
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: que es un MVC?

En complemento a lo preguntado por vani18, ¿cvelazquez dónde podríamos aprender sobre MVC y cómo organizar nuestro código, además de comprender cada una de esas clases que comentas como helpers, etc.?

Saludos.
Francisco J.
  #5 (permalink)  
Antiguo 30/07/2012, 07:41
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
Bueno masomenos lo que es mvc. Seria como una metodologia de trabajo. Para estar mas organizado. Y a su vez reutilizar codigo...

No entiendo . En el caso de los frameworks. Hay algunos no me acuerdo . Que no usan el modelo mvc. Pero como es esto?? Que son entonces... ? Por que no usan esta manera de trabajo....


2) eso de superclase y clase se q son. No se bien eso de request..... Lo buscare..


Gracias
  #6 (permalink)  
Antiguo 30/07/2012, 08:06
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: que es un MVC?

depende de la naturaleza del FW, por lo general se orientan al MVC por ser el patrón más común de éxito, entre ellos:

Codeigniter, Symfony, ZendFW, CakePHP, Yii, KumbiaPHP, y muchos otros

Para aprender te recomiendo Codeigniter2 por se uno de los más fáciles de aprender, pero recuerda que debes de elegir por tu cuenta, yo solo te ofrezco una recomendación, el objetivo no es iniciar otra "guerra" de cual es el mejor, porque en el foro ya hay mucho sobre ello

con respecto de clase, superclase, request, me temo que tendrás que dominar el lenguaje técnico, tanto de POO (programación orientada o objetos) como de los principios del modelo cliente-servidor (request es petición)
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 30/07/2012, 20:35
 
Fecha de Ingreso: julio-2012
Mensajes: 30
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: que es un MVC?

Francisco, aprender sobre MVC no sabría decirte. La verdad es que me toco aprenderlo sólo leyendo únicamente la documentación. Comencé a escribir un tutorial de OOP, MVC, y Code Igniter hace mucho pero no lo termine. Igual y de rato lo publico. Más alla de ser un tutorial del framework es un tutorial para comprender OOP y aprender el MVC comparándolo todo el tiempo con el clásico método de procedimientos.

Vani, tal y como menciona maycolalvarez, el tipo de framework más popular es el MVC y con OOP. Ciertamente hay otros frameworks pero te recomiendo ampliamente que elijas uno OOP y MVC. El Code Igniter es el más sencillo de aprender ya que esta muy bien documentado (sino mal recuerdo me tomo 1 día aprenderlo).

El término de Super clase refiere realmente a una clase normal pero de ella se generan muchas clases hijas (subclases). Cuando estudies algún framework verás que cada controlador es una clase hija de otra, así como un modelo y una vista.

El request dispatcher es (comunmente) el archivo que recibe la solicitud del usuario que navega. En la mayoría de los casos es el index.php el cual realiza varios include a otros archivos que traen el código para procesar la solicitud del usuario y con ello determinar que controlador, y método, ejecutar y con que argumentos.

Una limitante muy común al aprender un framework es el idioma, ya que la mayor parte de la documentación de cualquier framework esta en inglés.

También comencé a programar hace poco mi propio framework tomando bases de Code Igniter y CakePHP principalmente para desarrollos menores. No me ha tocado estudiar symphony pero vaya que quiero aprenderlo. Ello lo comento porque es otra excelente forma de aprender; programarte algo que funcione tal y como crees que funciona otra cosa.

CakePHP te lo recomiendo por su parecido con Ruby on Rails, podrías decir que aprendes 2 frameworks a la vez hehehe.

Justo estaba pensando en abrir una especie de blog/micrositio para enseñar todo esto que comento pero no he tenido oportunidad.

Etiquetas: html, usuarios
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 19:20.