📄 Contenido:
El patrón MVC (Modelo-Vista-Controlador) es ampliamente utilizado en el desarrollo web para separar la lógica de negocio, la presentación y la gestión de las solicitudes. En este tutorial, te enseñaremos a crear un sistema MVC en PHP puro, sin frameworks, desde cero.
🌐 ¿Qué es el patrón MVC?
MVC es una arquitectura de software que divide la aplicación en tres componentes principales:
- Modelo (Model): Gestiona los datos y la lógica de la aplicación.
- Vista (View): Se encarga de la presentación de los datos.
- Controlador (Controller): Recibe las peticiones del usuario, procesa los datos (utilizando el modelo) y devuelve la respuesta (vista).
⚙️ Paso 1: Estructura del Proyecto
La estructura básica de un sistema MVC en PHP será la siguiente:
/miProyecto
/controllers
- HomeController.php
/models
- User.php
/views
- home.php
/core
- Controller.php
- Model.php
index.php
⚡ Paso 2: Crear el archivo index.php
Este archivo será el punto de entrada de la aplicación y manejará las solicitudes del usuario.
<?php
// Cargar la clase de controlador
require_once 'core/Controller.php';
require_once 'core/Model.php';
// Definir controlador por defecto
$controller = isset($_GET['controller']) ? $_GET['controller'] : 'home';
$action = isset($_GET['action']) ? $_GET['action'] : 'index';
// Incluir el controlador solicitado
require_once "controllers/{$controller}Controller.php";
// Crear una instancia del controlador y ejecutar la acción
$controllerName = ucfirst($controller) . 'Controller';
$controllerObj = new $controllerName();
$controllerObj->$action();
?>
🔑 Paso 3: Crear el archivo de la clase Controller.php
Este archivo gestionará la lógica común de todos los controladores.
<?php
// Core/Controller.php
class Controller {
// Función para cargar las vistas
public function view($view, $data = []) {
extract($data);
require_once "views/{$view}.php";
}
}
?>
🔑 Paso 4: Crear el archivo de la clase Model.php
Esta clase manejará la lógica relacionada con la base de datos.
<?php
// Core/Model.php
class Model {
// Función para obtener la conexión a la base de datos
protected function connect() {
return new PDO('mysql:host=localhost;dbname=mvc', 'root', '');
}
}
?>
⚡ Paso 5: Crear un controlador (HomeController.php
)
Este controlador manejará las solicitudes relacionadas con la página principal.
<?php
// Controllers/HomeController.php
require_once 'core/Controller.php';
class HomeController extends Controller {
public function index() {
$data = ['message' => '¡Bienvenido al sistema MVC en PHP!'];
$this->view('home', $data);
}
}
?>
⚡ Paso 6: Crear una vista (home.php
)
Esta vista mostrará el mensaje al usuario.
<!-- Views/home.php -->
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Aplicación MVC</title>
</head>
<body>
<h1><?php echo $message; ?></h1>
</body>
</html>
✅ Conclusión
¡Y listo! Ahora tienes un sistema básico MVC en PHP funcionando sin necesidad de frameworks. Puedes ampliar este sistema agregando más controladores, modelos y vistas según sea necesario.
🔐 ¿Qué más puedes hacer?
- Agregar rutas dinámicas para un manejo de URLs más eficiente.
- Implementar un sistema de base de datos completo con modelos y controladores.
- Crear un sistema de autenticación y autorización para usuarios.