Implementación del patrón Front Controller en PHP

Clase 6 de 33Curso de PHP Avanzado

Resumen

Implementar el patrón Front Controller es esencial cuando se busca centralizar y optimizar la estructura de navegación en un proyecto PHP. Mediante este sistema, se maneja todo el acceso al proyecto desde un único punto, aumentando seguridad y simplificando la gestión del código fuente.

¿Qué es el patrón Front Controller y por qué implementarlo?

El patrón front controller se utiliza para centralizar todas las solicitudes y manejarlas desde un solo archivo. Este enfoque:

  • Incrementa la seguridad al limitar el acceso directo a archivos importantes.
  • Facilita la organización de rutas en el proyecto.
  • Simplifica futuras modificaciones y el mantenimiento del código.

Al emplear un sistema basado en un único punto de entrada como index.php, el desarrollador maneja mejor la lógica del proyecto.

¿Cómo establecer rutas centralizadas en PHP?

Las rutas centralizadas permiten administrar fácilmente las URL del proyecto. El procedimiento es:

  • Crear un archivo específico (web.php), almacenado en una carpeta propia (rutas).
  • Utilizar un arreglo para almacenar y gestionar todas las rutas disponibles.
  • Vincular claramente cada URL a su controlador correspondiente mediante este arreglo:
return [
    '/' => 'home.php',
    'post' => 'post.php',
    'about' => 'about.php',
    'enlaces' => 'enlaces.php'
];

Esta práctica permite manejar fácilmente errores o cambios en la navegación.

¿Qué pasos seguir para proteger el proyecto con una carpeta public?

Para asegurar que los archivos vitales no sean accesibles directamente desde el navegador:

  • Ubicar el archivo index.php en una carpeta específica y pública (denominada comúnmente como public).
  • Mantener el resto del código, rutas y controladores, en directorios externos, inaccesibles directamente.

Esta configuración evita que usuarios externos puedan acceder directamente a archivos sensibles como las rutas definidas en web.php. Además, protege los archivos fuente y facilita el escalar el proyecto posteriormente.

¿Cómo ajustar las rutas relativas?

Al reorganizar tu proyecto con el patrón front controller y una carpeta pública, es fundamental ajustar las rutas relativas. Por ejemplo:

  • Si tratas de acceder a recursos almacenados fuera de la carpeta pública, la ruta debe indicar claramente el movimiento hacia atrás en la estructura del proyecto:
// ejemplo de ruta hacia atrás
require '../../recursos/home.php';

Este detalle asegura que el proyecto funcione de forma continua y correcta tras la reorganización.

¿Quieres aplicarlo en tu blog? Comparte tu experiencia o cualquier duda en los comentarios.