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é son los Factories en PHP y cómo usarlos?

¿Qué es el patrón Singleton en PHP?

 

¿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.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to Top
0
Would love your thoughts, please comment.x
()
x