Если вы используете Smarty3 (что вам следует), посмотрите на Наследование и Шаблон наследования .Он позволяет вам определять шаблоны так же, как вы строите свои классы - стиль ООП.
Если вы не можете (или не хотите) катиться с TI, я бы предложил подход {include}
,Основания:
- Сокращение API между PHP и шаблонами
- позволяет кэшировать вывод более простым способом
- позволяет $ cache_modified_check для базовой
HTTP 304 Not Modified
обработки прямо из коробки - можно оптимизировать (с помощью Smarty3) до {include… inline} , чтобы уменьшить количество операций ввода-вывода файловой системы
- canбыть в целом оптимизирован (Smarty3) через $ merge_compiled_include (все еще уменьшая ввод / вывод файловой системы)
Есть (только) одно преимущество нескольких вызовов display ().Вы можете отправить данные в браузер кусками.Таким образом, вы можете очистить браузер до того, как ваш будет обработан.Это позволяет браузеру извлекать (блокировать) ресурсы, такие как сценарии и CSS, еще до того, как он получил весь документ.(«Конвейерная загрузка документов»)
Что касается удобства обслуживания, я использую подходы TI и {include}.Никогда не вызывайте несколько вызовов ().Мне бы пришлось трогать слишком много сценариев, если что-то изменилось.