Соответствует ли шаблон FrontController для одностраничного приложения?

Я занимаюсь разработкой приложения с использованием KnockOutJS на внешнем интерфейсе и PHP на заднем.

Бэкэнд имеет две точки входа: index.php, который содержит весь HTML-код и включает в себя все JS-файлы из knockoutJS и мои пользовательские JS-файлы, css и т. Д. Другой - main.php, куда отправляются все мои AJAX-запросы. из моей ViewModel, и он использовал чистый PHP.

Я не вижу, как я могу сделать это приложение с одной записью, не смешивая HTML и PHP-код в одном файле (index.php). Это было бы контрпродуктивно, потому что смешивание нескольких языков в одном файле обычно сбивает с толку.

У меня вопрос, как я могу применить своего рода шаблон FrontController в этом случае? Шаблон FrontController очень похож на шаблон команд. Каковы его преимущества? (кроме одной точки входа) Как мне разбить мой файл main.php, чтобы у меня не было 30 операторов if else в строке, по одному для каждого вида запроса?

1 ответ

Обычно фронтальный контроллер используется в качестве центральной точки входа в приложение.

В сочетании с маршрутизатором, диспетчером и MVC фронт-контроллер дает реальные преимущества и четкое разделение обязанностей.

Использование фронт-контроллера позволяет очень легко создавать Чистый URL или "Симпатичный URL". Обычно вам нужен соответствующий .htaccess файл, который перенаправляет все запросы на фронт-контроллер (index.php).

например

# Redirect to front controller
RewriteEngine On
# RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L] 

В фронт-контроллере приложение загружается, и запрос перенаправляется на соответствующее действие контроллера путем сопоставления пути URL. Контроллер принимает запрос, передает вычисленные данные в представление (механизм шаблонов) для рендеринга и возвращает результат представления в качестве ответа.

Другие вопросы по тегам