
Qué es el Modelo MVC en PHP?
Cuando desarrollamos aplicaciones en PHP, es común que el código se vuelva difícil de mantener si todo está mezclado en un solo archivo. Para evitar esto, existe un patrón de diseño llamado MVC (Modelo – Vista – Controlador), que nos ayuda a organizar el código de forma más ordenada y escalable.
En este artículo te voy a explicar qué es MVC, cómo funciona y cómo puedes implementarlo en PHP paso a paso.
¿Qué significa MVC?
MVC es una forma de estructurar tu aplicación dividiéndola en tres capas principales:
- Modelo (Model): Se encarga de la lógica del negocio y la conexión con la base de datos.
- Vista (View): Se encarga de mostrar los datos al usuario (HTML, CSS).
- Controlador (Controller): Recibe las acciones del usuario y coordina la comunicación entre el modelo y la vista.
Estructura básica del MVC
Un ejemplo básico de estructura de carpetas sería:
/mvc-app │ ├── /controllers │ └── ProductController.php ├── /models │ └── ProductModel.php ├── /views │ └── productView.php ├── index.php
Paso a paso: Implementación simple de MVC en PHP
1. Modelo: ProductModel.php
<?php class ProductModel { private $products = []; public function __construct() { $this->products = [ ['id' => 1, 'name' => 'Laptop', 'price' => 1200], ['id' => 2, 'name' => 'Teclado', 'price' => 150], ['id' => 3, 'name' => 'Mouse', 'price' => 80], ]; } public function getAllProducts() { return $this->products; } }
2. Vista: productView.php
<?php function showProductsView($productList) { echo "<h2>Lista de Productos</h2><ul>"; foreach ( $productList as $product ) { echo "<li>{$product['name']} - $ {$product['price']}</li>"; } echo "</ul>"; }
3. Controlador: ProductController.php
<?php require_once './models/ProductModel.php'; require_once './views/productView.php'; class ProductController { private $productModel; public function __construct() { $this->productModel = new ProductModel(); } public function showProductList() { $productList = $this->productModel->getAllProducts(); showProductsView($productList); } }
4. Archivo principal: index.php
<?php require_once './controllers/ProductController.php'; $productController = new ProductController(); $productController->showProductList();
¿Por qué usar MVC?
Estas son algunas ventajas claras:
- Separación de responsabilidades: Cada parte del código tiene una función clara.
- Fácil de mantener: Si quieres cambiar el diseño, solo editas la vista. Si cambias la lógica de negocio, solo el modelo.
- Escalable: Puedes agregar más funcionalidades sin romper lo existente.
El patrón MVC es una excelente práctica para estructurar aplicaciones PHP de forma profesional. Aunque este ejemplo es muy básico, te da una buena base para comenzar a construir proyectos más complejos de forma organizada.