Front controller

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Front Controller (фронт-контролер, єдина точка входу) - шаблон проектування, який є спеціалізованою варіацією шаблону проектування Посередник. Задачею фронт-контролера є надання єдиної точки входу для обробки усіх запитів та виклик відповідної поведінки в залежності від запиту.

Фронт-контролер найчастіше використовується у веб-застосуваннях, де є багато подібних речей, які потрібно виконати при обробці запиту. Це може бути безпека, інтернаціоналізація, забезпечення певного вигляду для певних користувачів. Якщо обробка вхідних запитів розподілена між кількома контролерами це може призвести до дублювання поведінки. Крім того виникають складності зі зміною поведінки під час виконання. Фронт-контролер об'єднує обробку запитів шляхом їх направлення через єдиний об'єкт-обробник. Цей об'єкт реалізовує загальну поведінку, яка може бути змінена під час виконання за допомогою декораторів. Після цього Front controller створює потрібні об'єкти відповідно до запиту та викликає методи для реалізації конкретної задачі.

Фронт-контролер може бути реалізований у вигляді Java-об'єкта, або, як скрипт PHP, ASP, JSP або CFML, що викликається на кожен запит веб-сесії. Цей скрипт, наприклад index.php, буде обробляти всі запити, що є спільними для веб-застосування або фреймворку, наприклад обробка сесій, кешування і фільтрація вхідних даних.

Альтернативою фронт-контролеру можуть бути окремі скрипти наприклад login.php і order.php для обробки певного типу запиту. Кожному скрипту доведеться дублювати код або об'єкти, які є спільними для всіх запитів, але кожен скрипт має порівняно більшу гнучкість для обробки конкретного запиту.

Приклади[ред.ред. код]

Zend Framework та інші MVC фреймворки PHP

ASP.NET MVC Framework

Джерела[ред.ред. код]

Martin Fowler. Front Controller

Посилання[ред.ред. код]

Front Controller pattern (en)

Zend Framework front controller

Див. також[ред.ред. код]

Посередник (шаблон проектування)