¿Qué es MVC?
Estándares MVC para Model-View-Control. Es un patrón arquitectónico que divide la aplicación en tres componentes principales.
1. El modelo se ocupa de la lógica empresarial y las interacciones de las bases de datos
2. El controlador coordina las actividades entre el modelo y la vista.
3. View es responsable de la presentación de datos.
Las siguientes son algunas de las ventajas del patrón arquitectónico MVC
- Acoplamiento suelto: los componentes existen y funcionan independientemente unos de otros.
- Flexibilidad: se pueden realizar cambios fácilmente en componentes individuales
- Mayor productividad: más de una persona puede trabajar en el proyecto al mismo tiempo. Los desarrolladores de front-end pueden trabajar en las vistas y la presentación, mientras que los desarrolladores de back-end pueden centrarse en los modelos y, dado que el sistema está débilmente acoplado, funciona al final del día.
En este tutorial, aprenderá:
- ¿Qué es MVC?
- Modelo
- Controlador
- Vista
- ¿Cómo funcionan los frameworks MVC?
- Controlador CodeIgniter
- Modelo CodeIgniter
Modelo
El modelo es responsable de interactuar con las fuentes de datos. Suele ser una base de datos, pero también puede ser un servicio que proporciona los datos solicitados. También es una práctica común tener la lógica empresarial contenida en los modelos en lugar del controlador. Esta práctica generalmente se denomina controlador flaco modelo gordo.
El modelo generalmente escribe datos en la base de datos, proporciona un mecanismo para editar, actualizar y eliminar datos. En una aplicación web moderna, los modelos utilizan patrones de diseño de acceso a datos, como registro activo, para facilitar la interacción con la base de datos.
Por ejemplo, CodeIgniter usa una biblioteca incorporada Active Record para ayudar a los modelos, mientras que otros marcos como Laravel usan Eloquent Object Relational Mapper (ORM) que ayuda al acceso a los datos.
Controlador
El controlador escucha las solicitudes entrantes de recursos de los usuarios. Actúa como intermediario entre el modelo y la vista y, en ocasiones, también implementa algunas reglas de negocio. Digamos que el controlador recibe una solicitud para registrar un usuario en la base de datos.
El controlador puede realizar la validación de datos sobre lo que se ha enviado para asegurarse de que se hayan presentado todos los parámetros requeridos. Si falta algo, el usuario es redirigido a la página de registro y se muestra el mensaje de error correspondiente. El controlador también puede solicitar al modelo que realice más validaciones verificando si la dirección de correo electrónico enviada ya existe. Si todas las reglas de validación pasan, el controlador envía los datos al modelo para su proceso y espera la respuesta.
Una vez que el modelo ha procesado la información y ha devuelto una respuesta positiva, el controlador carga la vista adecuada y pasa los datos devueltos por el modelo como parámetro.
Vista
La vista trata con datos presentados al usuario final. En las aplicaciones web, las vistas suelen contener HTML, CSS y, opcionalmente, JavaScript. Las vistas contienen un código de programación mínimo. El código contenido en las vistas se usa generalmente para recorrer las colecciones de datos recibidos como parámetros del modelo o función auxiliar para limpiar datos o crear enlaces para editar los registros. La mayoría de las aplicaciones web modernas suelen utilizar motores de creación de plantillas que definen su propia sintaxis, que se parece más a un pseudocódigo y que los diseñadores pueden comprender fácilmente. Cuando se trabaja con CodeIgniter, es una práctica común utilizar etiquetas PHP cortas y estructuras de control. Para mostrar algo en CodeIgniter, se puede usar el siguiente código
Opuesto a
Las estructuras de control generalmente se escriben de la siguiente manera
Como puede ver en el ejemplo anterior, la vista utilizará una combinación de PHP y HTML en lugar de incluir todo en código PHP puro.
¿Cómo funcionan los frameworks MVC?
La siguiente imagen muestra cómo funciona el marco MVC
Un controlador recibe la solicitud del usuario, interactúa con el modelo de base de datos si es necesario y luego devuelve el resultado al navegador en forma de código HTML que el navegador interpretó en un formato legible por humanos y se muestra al usuario.
Controlador CodeIgniter
Analicemos ahora lo que acaba de pasar cuando cargamos la URL anterior en el navegador web.
Abra el archivo Welcome.php controlador ubicado aplicación / controladores
Debería poder ver el siguiente código
load->view('welcome_message');}}
AQUÍ,
- definido ('BASEPATH') OR exit ('No se permite el acceso directo al script'); impide el acceso directo al controlador si la solicitud no llegó a través de index.php. esto es por motivos de seguridad.
- class Welcome amplía CI_Controller {…} define la clase de controlador de bienvenida y amplía la clase padre CI_Controller
- public function index () {…} define el método de índice que responde a la URL http: // localhost: 3000
- $ this-> load-> view ('welcome_message'); carga la vista welcome_message que se encuentra en el directorio application / views
Ahora actualizaremos el método de índice de la siguiente manera
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
AQUÍ,
- $ this-> load-> model ('modelo_clientes'); carga el modelo de clientes.
- $ datos ['cliente'] = $ esto-> modelo_clientes-> get_customer (3); llama al método get_customer de customers_model y pasa el parámetro 3. En este ejemplo hemos codificado el valor, pero en aplicaciones de la vida real este sería un parámetro del URI.
- $ this-> load-> view ('welcome_message', $ data); carga la vista welcome_message y pasa la variable $ data a la vista
Modelo CodeIgniter
Creemos ahora la vista a la que hicimos referencia en el código anterior. Para simplificar, nuestro modelo no interactuará con la base de datos, pero devolverá un registro de cliente estático. Trabajaremos con bases de datos en los próximos tutoriales.
Cree un archivo Customers_model.php en la aplicación / modelos
Agrega el siguiente código
AQUÍ,
- class Clientes_modelo extiende CI_Model {…} define el modelo Clientes_modelo que extiende CI_Modelo.
- public function get_customer ($ id) {…} define el método de obtención de cliente basado en una identificación de cliente
- $ data […] define los valores estáticos de nuestro cliente ficticio. Debe ser una fila devuelta desde la base de datos.
- devolver $ datos; devuelve los datos del cliente.
Es decir, para nuestro modelo. Modifiquemos ahora la vista welcome_message
Abra welcome_message.php ubicado en
application/views/welcome_message.php
Reemplace el código con lo siguiente
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Guardar los cambios
Cargue la siguiente URL en el navegador web
http: // localhost: 3000 /
Debería poder ver la tarjeta del cliente como se muestra en la imagen a continuación
Resumen
- MVC es un patrón arquitectónico que divide la aplicación en tres componentes principales
- El modelo se encarga de interactuar con las fuentes de datos.
- El controlador escucha las solicitudes entrantes de recursos de los usuarios.
- En las aplicaciones web, las vistas suelen contener HTML, CSS y, opcionalmente, JavaScript.
- Un controlador recibe la solicitud del usuario, interactúa con el modelo de la base de datos si es necesario y luego devuelve el resultado al navegador en forma de código HTML