Knowledge center Programación Entornos de programación

Las aplicaciones web desarrolladas bajo el patrón MVC deben mantener una estructura organizada y coherente que respete la separación de capas.

Estructura básica de directorios

Comenzaremos creando tres carpetas dentro del directorio público del servidor:

Estructura de la aplicación web

Cada una de estas carpetas almacenará los scripts correspondientes a su capa:

  • controller/: contiene los scripts de los controladores (gestión de solicitudes y lógica de negocio).
  • model/: contiene los scripts del modelo (gestión y acceso a datos).
  • view/: contiene los scripts de la vista (generación del HTML u otras presentaciones).

Por lo general, cada sección funcional de la aplicación contará con un script en cada una de las capas, identificado con el nombre de la sección.

jemplo de estructura para una web con secciones

controller/noticias.php
controller/productos.php
model/noticias.php
model/productos.php
view/noticias.php
view/productos.php

Reescritura de URLs

Tal como vimos en el ciclo de vida del patrón MVC, el usuario realiza la petición al controlador. Sin embargo, como el controlador reside dentro de la carpeta /controller, las URLs amigables no coinciden directamente con la estructura de carpetas del servidor.

Para solucionar esto, debemos implementar reescritura de URLs usando el módulo mod_rewrite de Apache. Esto permite interceptar todas las URLs y redirigirlas a un único script que actúe como controlador frontal.

Ejemplo de archivo .htaccess:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !\.(jpg|css|js|gif|png)$ [NC]
RewriteRule ^(.*)$ index.php?pantalla= [QSA]

RewriteCond: evita que se reescriban peticiones a archivos estáticos como imágenes o scripts.

RewriteRule: redirige todas las demás peticiones a index.php, pasando la URL original como parámetro pantalla.

Este patrón también es compatible con servidores modernos como NGINX, aunque la sintaxis de configuración sería distinta.

Script controlador principal

Ubicaremos el archivo index.php en la raíz de la carpeta pública. Este script analizará la URL solicitada por el usuario, identificará el controlador correspondiente y lo incluirá mediante una instrucción como:

include 'controller/' . $_GET['pantalla'] . '.php';

Recomendación de seguridad: valida siempre el valor recibido en $_GET['pantalla'] para evitar vulnerabilidades como inclusión de archivos.

 

Esta píldora formativa está extraída del Curso online de Programación en PHP avanzada.

¿Te gusta el contenido de esta píldora de conocimiento?

No pierdas tu oportunidad y ¡continúa aprendiendo!

ADR Formación utiliza cookies propias y de terceros con fines analíticos anónimos, para guardar tus preferencias y garantizar el correcto funcionamiento del sitio web.

Puedes aceptar todas las cookies, rechazarlas o configurarlas según tus preferencias utilizando los botones correspondientes.

Puedes obtener más información y volver a configurar tus preferencias en cualquier momento en la Política de cookies