Я не уверен, что мне разрешено задавать здесь более практичный вопрос, так как этот вопрос не столько поддерживает, сколько просто дает хороший совет.
У меня есть фронт-контроллер с простым менеджером макетов (отсутствие лучшего термина), который эффективно загружает HTML-макет по умолчанию (или пользовательский, если он указан), и, основываясь на запросе страницы пользователя, вставит другой файл (называемый файлами просмотра) в области содержимого скелетов.
Скелет может выглядеть примерно так:
<div id="header">
<h1>head goes here</h1>
<div id="content">
<?php $this->insertContent(); ?>
</div>
<div id="footer">
<p>footer goes here</p>
</div>
Хотя это довольно просто, это облегчает создание будущих обновлений, потому что, если клиент теперь захочет, чтобы я добавил скроллер jquery, я мог бы добавить его к единому макету, как в случае необходимости редактировать несколько документов для достижения одной и той же цели. .
Однако мой друг говорит, что он считает, что это нехорошее решение, и считает, что я не должен разделять свои файлы «view» и макеты, а скорее придерживаться фронт-контроллера, а мои html-страницы должны использовать php include (include header и нижний колонтитул) и сохранить мои HTML-страницы в виде 1 файла, потому что:
- Менеджер макетов сделает мое приложение менее гибким, поскольку я привязываю себя к одному макету (если только я не создаю новый макет и в моем файле контроллера страницы не укажите, что он должен использовать другой макет).
- Другим разработчикам будет нелегко понять логику, и я создаю больше работы, чем необходимо
- Разработчики простого HTML не смогли бы провести надлежащее тестирование, поскольку они могут реально работать только с фрагментами, как приложение ко всем документам HTML и увидеть большую картинку.
- Это более запутанно, потому что для внесения изменений в страницу мне нужно внести изменения либо в файл вида, либо в файл скелета, и вам нужно знать, когда редактировать файл скелета.
Я скоро начну разрабатывать проект, который будет иметь несколько этапов разработки, и для меня очень важно принять решение об этом, поскольку я хочу, чтобы приложение было максимально гибким и создавало как можно меньше работы, но также сделайте так, чтобы я мог легко вносить изменения, улучшения или изменения в сайт. Я бы очень ценил несколько советов, так как этот аргумент сейчас основан на индивидуальных мнениях двух людей. Любые вопросы, которые необходимо учитывать, и, возможно, информацию о том, как более масштабные основные структуры и работа CMS также помогут мне принять более правильное решение.