TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #5157 2.84K
Front Controller и Page Controller в PHP

Архитектурные паттерны Front Controller и Page Controller помогают структурировать работу веб-приложений, но подходят для разных сценариев.

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

Как это работает:
🔸Единая точка входа: Весь входящий трафик перенаправляется на один файл, например, index.php, с помощью настроек веб-сервера (например, .htaccess для Apache или правил маршрутизации для Nginx).
🔸Маршрутизация: Контроллер анализирует URL и определяет, какой компонент должен обработать запрос. Это может быть реализовано вручную или с использованием библиотек маршрутизации.
🔸Делегирование: На основе маршрута запрос передается соответствующему контроллеру или методу, который выполняет обработку.
🔸Формирование ответа: Контроллер формирует ответ (обычно в формате HTML или JSON) и отправляет его клиенту.

Page Controller фокусируется на создании отдельного контроллера для каждой страницы или группы страниц. Это улучшает изоляцию кода и облегчает модификации, так как изменения в одной странице не затрагивают другие. Такой подход удобен для небольших и средних проектов, где каждая страница требует уникальной обработки.

Каждый контроллер выполняет следующие задачи:

🔹Обработка запроса: анализирует данные, поступающие от клиента.
🔹Логика страницы: проводит проверку данных, взаимодействует с моделями или выполняет вычисления.
🔹Формирование ответа: передаёт обработанные данные в представление для генерации итогового ответа.

Оба паттерна можно комбинировать, адаптируя их под конкретные потребности приложения.
  • 🔥 5
  • 🤔 4
  • 👍 2
  • 🌚 1
More from @phpproglib
  1. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  2. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  3. Sep 30, 2026🐸 Библиотека пхпшника
  4. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
  5. Sep 28, 2026🔐 ramsey/uuid — UUID без самописного кода Библиотека помогает генерировать, парсить и вал…
  6. Sep 28, 2026🤔 Что выведет код? ❤️ — 1 🔥 — 2 👍 — 12 👾 — Fatal error 👇 Правильный ответ (нажми, что…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →