Во-первых, PHP является языком шаблонов. Помните об этом, когда говорите об использовании системы шаблонов для ваших веб-приложений на основе PHP.
Единственный «реальный» аргумент, который я когда-либо слышал об использовании ЛЮБОГО шаблонизатора, заключался в том, что они предоставляют более простой язык для манипулирования шаблонами, что может быть удобно, если у вас есть дизайнеры шаблонов, которые не знают PHP и которые вы не знаете » Не верьте, чтобы научиться разумно использовать PHP.
Что касается этих аргументов, я бы сказал, что если ваши дизайнеры шаблонов не компетентны изучать достаточно PHP для разработки шаблонов, вам, вероятно, следует подумать о поиске новых дизайнеров шаблонов. Кроме того, сам PHP предоставляет другой синтаксис для операторов управления, которые вы можете использовать в шаблоне, а не в коде. Например:
<? foreach($array as $key => $val): ?>
<?= $val ?>
<? endforeach; ?>
VS:
<?php
foreach($array as $key => $val) {
echo $val;
}
?>
Лично я считаю, что движки шаблонов возникли в PHP, потому что:
- Так делают другие языки
- Лучшие программисты PHP поняли, что им нужен способ обеспечить разделение между логикой представления и приложения, а шаблоны - это простой способ сделать это.
Первая причина просто глупая. Вторая причина может быть преодолена с небольшим самоконтролем и даже элементарным пониманием необходимости разделения слоев в приложении. Шаблон проектирования MVC является одним из способов решения этой проблемы. Что касается самоконтроля, мое правило состоит в том, что нужны только необходимые циклы и, если используются операторы, а также функции, которые фильтруют, экранируют, форматируют выходные данные для экрана.
Широко использовав Smarty, я могу честно сказать, что он всегда создавал для меня больше препятствий, чем преодоление, чем решения. Во всяком случае, переключение на шаблоны на основе PHP - это то, что фактически сократило время разработки как шаблонов, так и кода.