Лично я всегда использую движки шаблонов в php, python и т. Д.
Первая очевидная причина, уже упомянутая другими:
Это заставляет вас не использовать бизнес-логику в своих шаблонах.
Да, конечно, дисциплина будет хорошо, если она у вас есть.
Но это лишь небольшой аспект того, почему вы бы использовали шаблонизатор . Большинство из них - больше, чем просто движок, и их можно рассматривать как шаблонные рамки, нравится вам это или нет.
Например, Smarty также имеет расширенные функции кэширования, такие как частичное кэширование. Действительно полезные вещи, вещи, которые вы должны были бы делать самостоятельно, используя только php в качестве языка шаблонов.
И, пожалуйста, не забудьте все эти действительно полезные вспомогательные функции, просто быстрый поиск по документам. Большинство из них также предоставляют простой способ добавления собственных функций и / или инструментария.
Так что да, это вопрос выбора. Если вам нужны действительно простые шаблоны, попробуйте показать некоторую дисциплину и не допускать логику в свои шаблоны. Но когда вы ожидаете, что ваше приложение будет расти, вам в конечном итоге понадобятся функции шаблонной платформы. И к тому времени, надеюсь, вы не заново изобретаете колесо, кодируя его все сами.
И, наконец, что не менее важно, для меня есть одна особенность убийцы, доступная в некоторых шаблонных средах.
Наследование шаблона
Я узнал об этом с Джанго , и теперь я использую его в последней Smarty 3 . У ребят из платформы Symphony также есть Twig , который можно считать портом с синтаксисом Django.
Сначала это выглядит немного странно, но очень мощно. Вы строите свой скелет и определяете различные блоки. Вы можете расширить этот каркас и заполнить (переопределить) блоки своим контентом.
Для меня это хранитель!