Подтвердить что ты не робот

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

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

РЕДАКТИРОВАТЬ - Я понимаю, что структура MVC - это не то же самое, что механизм шаблонов, но, конечно же, V-часть выполняет ту же работу? Возможно, лучший способ выражения вещей был бы; зачем добавить механизм шаблонов поверх V-части структуры MVC?

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

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

Ответ 3

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

{$foo}

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

<?php echo $foo; ?>

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

Ответ 4

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

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

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

Ответ 5

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

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

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

Ответ 6

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