Во-первых, 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 является одним из способов решения этой проблемы. Что касается осуществления некоторого самоконтроля, мое правило состоит в том, что используются только необходимые циклы и операторы if, а также функции, которые фильтруют, экранируют, форматируют вывод для экрана.
Активно пользуясь Smarty, я могу честно сказать, что мне всегда приходилось преодолевать больше препятствий, чем решений. Во всяком случае, переход на шаблоны на основе PHP — это то, что на самом деле сократило время разработки как шаблонов, так и кода.
person
Noah Goodrich
schedule
17.05.2009