Зачем использовать шаблонный движок с каркасом?

Недавно я обнаружил фреймворк PHP Kohana (который был потрясающим) и читал нить об использовании его в сочетании с движком шаблонов, таким как Smarty или Twig . Мой вопрос, зачем беспокоиться? Разумеется, структура MVC, по определению, является шаблоном. Даже «сырой» PHP, возможно, является шаблоном. Каковы возможные преимущества добавления еще одного уровня абстракции поверх того, что уже присутствует в таких рамках, как Kohana?

EDIT – я понимаю, что структура MVC – это не то же самое, что механизм шаблонов, но, конечно же, V-часть выполняет ту же работу? Возможно, лучший способ выражения вещей был бы; зачем добавить шаблонный движок поверх V-части структуры MVC?

Related of "Зачем использовать шаблонный движок с каркасом?"

У меня есть две действительно веские причины, которые я могу придумать для этого …

  1. Создание разметки, которая повторяется по всему сайту в согласованном формате, проще, плюс вы можете обновить ее позже без большого количества grepping.
  2. Если это для реальной компании, люди, определяющие контент, вряд ли будут действительно знакомы с HTML, а тем более с PHP. Имея простой язык шаблонов, который сохраняет стили, выглядящие правильно и генерирует правильную разметку без значительного знания кода, очень удобно.

Во-первых, raw PHP не является шаблоном.

Далее, среда MVC определяет, что структура разделена на Model, View и Control. Это не означает, что у рамки есть механизм шаблонов, хотя представление может быть интегрировано с собственным или внешним механизмом шаблона. Таким образом, структура может иметь или не иметь шаблонный движок.

В-третьих, View! = Template. Просмотр относится только к тому, как отображаются данные – обычно нет никакого шаблона, в то время как движок шаблонов ссылается на часть кода, способную правильно помещать данные в шаблоны, что позволяет значительно уменьшить необходимость изменения всех файлов, когда вы можете их модифицировать в шаблонах

Наконец, пользователи фреймворка могут предпочесть использовать более общий механизм шаблонов, такой как Smarty, над собственным движком шаблонов в рамках. Вам не нужно изучать новые теги в собственном шаблоне.

Если вы не разрешаете короткие теги,

{$foo} 

гораздо читабельнее, чем

 <?php echo $foo; ?> 

Он умножается на большой проект, он складывается.

Одна из серьезных причин, по которой вам нужен отдельный механизм шаблонов, заключается в том, что для PHP-сайта слишком сложно использовать PHP. Если вы просто создаете свой сайт, и у вас есть хорошее представление о том, как шаблоны сайта должны сочетаться друг с другом, то это не является недостатком, но для крупных проектов это мешает.

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

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

Маурис уже объяснил, почему MVC! = Механизм шаблонов, но я хотел бы добавить, что чем мощнее механизм шаблонов, тем чище и более краткими ваши шаблоны. Это делает его особенно легким для людей, которые не знакомы с PHP для их редактирования (например: если разработчику / разработчику переднего плана необходимо отредактировать HTML). В общем, MVC не обладают такой функциональностью.

Взгляните на этот пример от Smarty. Я никогда не использовал движок, и ответ на этот вопрос – это первый раз, когда я когда-либо видел его разметку, но я уже могу точно сказать, что он делает.

Кроме того, количество кода, которое вы должны писать, заметно меньше, так как Smarty и другие двигатели заботятся о мирских вещах для вас, как альтернативные цвета строк и альтернативный контент для пустых наборов данных в первом примере, и такие глупые вещи, как форматирование <select> списки в этом примере .

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