Что такое Front Controller и как он реализован в PHP? - PullRequest
24 голосов
/ 31 июля 2011

Прежде всего, я новичок в PHP.И разместили вопрос здесь: Рефакторинг файла require_once в проекте .Я пытался прочитать о Front-контролере столько, сколько смогу, но не могу понять, как он работает или даже о чем идет речь.

Может кто-нибудь объяснить вкратце, как он работает и о чем идет речь?

Спасибо.

1 Ответ

43 голосов
/ 31 июля 2011

Front Controller - это шаблон проектирования, в котором один компонент вашего приложения отвечает за обработку всех запросов к другим частям приложения.Он централизует общую функциональность, необходимую для остальной части вашего приложения.Шаблонирование, маршрутизация и безопасность являются типичными примерами функций Front Controller.Преимущество использования этого шаблона проектирования заключается в том, что, когда необходимо изменить поведение этих функций, необходимо изменить только небольшую часть приложения.

В веб-терминах все запросы на домен обрабатываютсяединая точка входа (фронт-контроллер).

чрезвычайно простой пример только функции маршрутизации фронт-контроллера.Использование PHP, обслуживаемого Apache, будет выглядеть примерно так.Наиболее важным шагом является перенаправление всех запросов на фронт-контроллер:

.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';
}
...