Enrutadores en PHP: guía práctica para proyectos modernos

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

  1. El navegador solicita una URL.
  2. El router.php analiza la ruta.
  3. Busca en el array $routes.
  4. Si coincide, carga el controlador y el método.
  5. 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.

Scroll al inicio