Сильно упрощённый пример.
Используются нативные шаблоны PHP.
Есть основной шаблон, в нём в цикле для каждого элемента в массиве выполнить код дополнительного шаблона. Если наиболее тупо то:
<ul>
<?php foreach($this->items as $this->item): ?>
<?php include('templates/items.php'); ?>
<?php endforeach; ?>
</ul>
Сам templates/item.php
например таков:
<li><?= $this->item ?></li>
Но в цикле инклудить многократно файл не очень эффективно. Это ведь тут пример упрощённый, реальный код сложнее.
Другой вариант, чтобы исключить многократное подключение одного и того же файла это:
<ul>
<?php foreach($this->items as $this->item): ?>
<?php $this->templaPart('templates/items.php'); ?>
<?php endforeach; ?>
</ul>
где templatePart()
это
public function templatePart($template)
{
if(isset(!$this->cached_templates[$template]))
{
$this->cached_templates[$template] = file_get_contents($template);
}
eval('?>'. $this->cached_template[$template]);
}
Второй вариант уже поэффективнее, но eval...
Есть ли что получше без использования сторонних библиотек?