Qué es el Modelo Vista Controlador (MVC)

¿Qué es el MVC?

El Modelo-Vista-Controlador(MVC) es un patrón arquitectónico que separa una aplicación en tres componentes lógicos principales: el modelo, la vista y el controlador. Cada uno de estos componentes están construidos para resolver aspectos específicos del desarrollo de una aplicación. MVC es uno de los más marcos de desarrollo web estándar más utilizados para crear proyectos más escalables y extensibles.

MVC
  • - Modelo: es la lógica empresarial, es decir, las clases y métodos que se comunican directamente con la base de datos.
  • - Vista: se encarga de mostrar la información al usuario de forma gráfica y visible.
  • - Controlador: es el intermediario entre la vista y el modelo, es encargado de controlar las interacciones del usuario en la vista, recoger los datos del modelo y devolverlos a la vista para poder mostrárselos al usuario.
Las operaciones basadas en MVC se pueden resumir en:
  • - El usuario hace una petición.
  • - El controlador captura la petición y realiza una llamada al modelo correspondiente.
  • - El modelo se encargará de interactuar con la base de datos.
  • - El controlador reciba la información y se la manda a la vista.
  • - La vista mostrará la información.
¿Cómo se implementa MVC en PHP?

:file_folder: controllers :file_folder: db :file_folder: models :file_folder: views :page_facing_up: index.php

Vamos a ver un ejemplo típico de MVC con PHP. Para entenderlo más fácilmente, estaría muy bien que conocieras que es la programación orientada a objetos y cómo la extensión de MySQL trabaja:

:page_facing_up: index.php

    require_once("db/db.php");
    
    require_once("controllers/cars_controller.php");
    
    

:page_facing_up: db.php

    
class Conect{

    public static function conexion(){

        $conexion=new mysqli("localhost", "root", "", "mvc");

        $conexion->query("SET NAMES 'utf8'");

        return $conexion;

    }

}


:file_folder: models/:page_facing_up:car_model.php

class car_model{

    private $db;

    private $cars;

 

    public function __construct(){

        $this->db=Conect::conexion();

        $this->cars=array();

    }

    public function get_cars(){

        $query=$this->db->query("select * from cars;");

        while($rows=$query->fetch_assoc()){

            $this->cars[]=$rows;

        }

        return $this->cars;

    }

}

:file_folder:controller/:page_facing_up:cars_controller.php

// Llamamos al Modelo

require_once("models/cars_model.php");

$per=new cars_model();

$dates=$per->get_cars();

 

// Llamamos a la vista

require_once("views/cars_view.phtml");


El controlador deberá de tener siempre esta estructura, que, además le puedes aplicar un autoloader en lugar de añadir todos los modelos y las vistas uno por uno.

:file_folder:view/:page_facing_up:cars_view.phtml

    foreach ($cars as $car) {

        echo $car["brand"]."
"; }

VOLVER AL BLOG