Introducción
Los enrutadores en PHP se han convertido en una pieza clave para construir aplicaciones modernas, limpias y fáciles de mantener. Gracias a un enrutador, puedes crear URLs amigables, separar la lógica del código y mejorar la organización interna de tus proyectos. Este enfoque es esencial tanto si trabajas con PHP puro, como si más adelante das el salto a frameworks profesionales.
En este artículo aprenderás qué es un enrutador, por qué es importante y cómo crear tu propio enrutador en PHP desde cero, con un ejemplo práctico que podrás utilizar en tus proyectos o adaptarlo a la arquitectura MVC que ya estás estudiando.
Qué es un enrutador y por qué es importante
Un enrutador es un componente que analiza la URL solicitada por el navegador y decide qué código debe ejecutarse. Sin un enrutador, PHP ejecuta directamente cada archivo solicitado; con un enrutador, defines rutas limpias y organizas funciones o controladores.
Ventajas clave:
- URLs más limpias y profesionales
- Código más organizado
- Facilita aplicar el patrón MVC
- Hace tu web más escalable
- Mejora el SEO puesto que permite construir enlaces estructurados
Ejemplo de URL sin enrutador:
https://tuweb.com/producto.php?id=5
Ejemplo con enrutador:
https://tuweb.com/productos/5
Ejemplo práctico de un enrutador en PHP
A continuación verás un ejemplo sencillo y totalmente funcional que puedes usar en Sutil Web o en tu aplicación MVC.
1. Estructura básica
/project
/controllers
HomeController.php
AboutController.php
index.php
router.php
2. Archivo router.php
<?php
$routes = [
'/' => 'HomeController@index',
'/about' => 'AboutController@index'
];
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
if (array_key_exists($uri, $routes)) {
list($controller, $method) = explode('@', $routes[$uri]);
require "controllers/$controller.php";
$instance = new $controller;
$instance->$method();
} else {
http_response_code(404);
echo "Página no encontrada";
}
3. Controlador de ejemplo: HomeController.php
<?php
class HomeController {
public function index() {
echo "<h1>Bienvenido a Sutil Web</h1>";
}
}
4. Archivo principal index.php
<?php
require 'router.php';
Cómo funciona
- El navegador solicita una URL.
- El router.php analiza la ruta.
- Busca en el array
$routes. - Si coincide, carga el controlador y el método.
- Si no existe, muestra error 404.
Con pocas líneas tienes un sistema de rutas simple, extensible y profesional, perfecto como base para tus aplicaciones.
