2011-07-31 13 views
23

Antes que nada, soy un principiante de PHP. Y he publicado una pregunta aquí: Refactoring require_once file in a project . Intenté leer acerca del controlador Front tanto como puedo, pero no puedo ver cómo funciona, ni siquiera de qué se trata.¿Qué es un controlador frontal y cómo se implementa en PHP?

¿Alguien puede explicar en breve cómo funciona y de qué se trata?

Gracias.

+0

Es un único punto de entrada. Cada solicitud es manejada por el controlador frontal. ¿Has leído http://en.wikipedia.org/wiki/Front_controller? –

+1

Sí, pero el enlace no me da mucha información al respecto. ¿Cómo se hace y cosas así? –

Respuesta

42

Controlador frontal se refiere a un patrón de diseño en el que un solo componente en su aplicación es responsable de manejar todas las solicitudes a otras partes de una aplicación. Centraliza la funcionalidad común que necesita el resto de su aplicación. La plantilla, el enrutamiento y la seguridad son ejemplos comunes de la funcionalidad del controlador frontal. El beneficio de usar este patrón de diseño es que cuando el comportamiento de estas funciones necesita cambiar, solo una pequeña parte de la aplicación necesita ser modificada.

En términos web, todas las solicitudes de un dominio se manejan mediante un único punto de entrada (el controlador frontal).

Un extremadamente simple ejemplo de solamente la funcionalidad de enrutamiento de un frente-controlador. Usar PHP servido por Apache se vería así. paso más importante es redirigir todas las peticiones al controlador frontal:

.htaccess

RewriteEngine On 
RewriteRule . /front-controller.php [L] 

front-controller.php

<?php 

if ($_SERVER['REQUEST_URI'] == '/help') { 
    include 'help.php'; 
} elseif ($_SERVER['REQUEST_URI'] == '/calendar') { 
    include 'calendar.php'; 
} else { 
    include 'notfound.php'; 
} 
+0

por qué no funcionó a menos que elimine la barra diagonal 'RewriteRule. front-controller.php [L] '? –

+0

¡también esto causó un bucle de direcciones de referencia internas! –

Cuestiones relacionadas