Сильно упрощённый пример.
Используются нативные шаблоны 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...
Есть ли что получше без использования сторонних библиотек?







