Как небольшая часть университетского проекта, над которым я работаю (пользовательская система управления проектами на основе MVC), мне нужно разработать шаблонизатор. Я не хочу использовать автономную систему, такую как Smarty, потому что я сам написал все остальные части проекта и не хочу сейчас возвращаться к этому.
В любом случае, мне удалось написать что-то простое, у меня есть класс, создать его экземпляр, добавить некоторые данные в экземпляр, а затем передать файл шаблона. Файл имеет ряд тегов, таких как {this}, а затем заменяется данными. Просто.
Проблема, с которой я сталкиваюсь, заключается в том, что когда дело доходит до зацикливания - то есть таблицы пользователей или списка категорий. На данный момент у меня есть файл шаблона для страницы (users.html), который содержит открывающий и закрывающий теги, с тегом шаблона между ними, называемым {users}. Затем у меня есть другой файл шаблона (users-detail.html), в котором отображается строка таблицы с информацией о пользователе. Я создаю новый экземпляр шаблона users-detail.html, добавляю данные, анализирую их, затем помещаю вывод (строка HTML) в массив. Затем я зацикливаю этот массив, присоединяю все строки вместе, затем назначаю это тегу {users} в файле шаблона users.html.
Как вы, вероятно, можете сказать из этого объяснения, это немного обидно, и, вероятно, существуют лучшие методы для достижения того, чего я пытаюсь достичь. В идеале я хочу по возможности избегать использования PHP в файлах шаблонов, и мне часто нужно иметь несколько циклов в одном файле шаблона.
Если у кого-нибудь есть какие-либо советы / рекомендации о том, как мне этого добиться, или какие-либо учебные пособия, которыми я мог бы следовать, чтобы получить вдохновение, которое было бы очень ценно.
Заранее спасибо.