Front Controller to wzorzec projektowy, w którym pojedynczy składnik w aplikacji odpowiada za obsługę wszystkich żądań do innych części aplikacji. Centralizuje wspólną funkcjonalność wymaganą przez resztę aplikacji. Templowanie, routing i bezpieczeństwo to typowe przykłady funkcji Front Controller. Zaletą korzystania z tego wzoru jest to, że gdy zachowanie tych funkcji wymaga zmiany, tylko niewielka część aplikacji wymaga modyfikacji.
W terminach sieci wszystkie żądania domeny są obsługiwane przez pojedynczy punkt wejścia (kontroler frontowy).
Niezwykle prosty przykład tylko funkcji routingu frontowego kontrolera. Używanie PHP obsługiwanego przez Apache wyglądałoby mniej więcej tak. Najważniejszym krokiem jest przekierować wszystkie żądania do kontrolera frontowego:
.htaccess
RewriteEngine On
RewriteRule . /front-controller.php [L]
przednie controller.php
<?php
if ($_SERVER['REQUEST_URI'] == '/help') {
include 'help.php';
} elseif ($_SERVER['REQUEST_URI'] == '/calendar') {
include 'calendar.php';
} else {
include 'notfound.php';
}
Jest to pojedynczy punkt wejścia. Każde żądanie jest obsługiwane przez kontroler frontowy. Czytałeś http://en.wikipedia.org/wiki/Front_controller? –
Tak, ale link nie zawiera zbyt wielu informacji na ten temat. Jak to się robi i takie rzeczy? –