Knowledge center Programación Entornos de programación

Todas las aplicaciones web realizadas según el patrón MVC, deben cumplir con una estructuración prefijada.

Comenzaremos creando tres nuevas carpetas dentro de la carpeta pública del servidor con el nombre controller, model y view.

  • controller contendrá todos los scripts de la capa controlador.
  • model contendrá todos los scripts de la capa modelo.
  • view contendrá todos los scripts de la capa vista.

Por lo general, cada sección de la web contará con un script PHP en cada una de las capas con el nombre de la sección. Casa script se encargará de las acciones de la sección específicas para la capa en la que está ubicado.

Tenemos una web con las secciones noticias y productos.

Para crear las secciones generaremos los siguientes scripts:

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

Tal y como hemos visto en el ciclo de vida del patrón MVC, el usuario realiza la petición directamente al controlador. Sin embargo, el controlador se encuentra siempre dentro de la carpeta controller, lo cual hace que la URL solicitada por el usuario no coincida con la estructura de directorios del servidor.

Siempre que la URL que el usuario debe solicitar no coincida con la estructura de carpetas del servidor, debemos utilizar la reescritura de URLs para ajustarlo.

Reescritura de URLs

Para configurar la reescritura de URLs del servidor, debemos utilizar el módulo mod_rewrite de Apache.

Utilizaremos un archivo .htaccess para establecer las directivas de mod_rewrite de forma que todas las URLs pasen por un único script que las controle. El contenido de .htaccess debe ser el siguiente:

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

El script que controla las peticiones, obtendrá la URL que le está llamando de $_GET['pantalla'].

NOTA: Hemos añadido una línea adicional a nuestro .htaccess que evita que las URLs que contengan archivos de recursos (imágenes, hojas de estilos, scripts de javascript...) sean reescritas y procesadas por el script de PHP. 

Mediante la reescritura de URLs, haremos que todas las URLs que el usuario nos envía sean procesadas por el script index.php que ubicaremos en la raíz de la carpeta pública del servidor.

Este script analizará la URL que el usuario ha utilizado y llamará al controlador de la sección correspondiente mediante un include

 

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!

Política de privacidad

ADR Formación utiliza cookies propias y de terceros para fines analíticos anónimos, guardar las preferencias que selecciones y para el funcionamiento general de la página.

Puedes aceptar todas las cookies pulsando el botón "Aceptar" o configurarlas o rechazar su uso pulsando el botón "Configurar".

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