Свой шаблонизатор на php?

Делаю свою cms и работаю со своим самописным шаблонизаторм. Он полностью меня во сем устраивает, хорошо справляется с поставленными задачами одиночного вывода информации. Но когда дело дошло с выводом данных в html-шаблон с массива, возникли проблемы. Например требуется вывод всех групп из таблицы БД в цикле foreach.
foreach ( $usergroup as $group ) {}

Как можно реализовать на php способ вывода данных в цикле foreach, в html-шаблоне. Например как это сделано в Smarty:
{foreach $usergroup as $group}
Номер: {$group->id}
Группа: {$group->name}
{/foreach}
  • Вопрос задан
  • 1864 просмотра
Пригласить эксперта
Ответы на вопрос 5
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Я честно не понимаю зачем делать шаблонизатор который абсолютно дублирует функционал самого языка.
PHP сам по себе отличный шаблонизатор.

Смарти при компиляции шаблона проходит по нему, и заменяет свои псевдотеги на конструкции вида $this->vars['usergroup']
Ответ написан
He11ion
@He11ion
PHP-monkey
Так, например:
<?php foreach ( $usergroup as $group ): ?>
Номер:  <?= $group['id'] ?>
Группа: <?= $group['name'] ?>
<?php endforeach; ?>


Но Вы страдаете фигней и пишете велосипеды.
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Молодец, вот пришла и твоя очередь узнать, что тупой "шаблонизатор" на strtr, оказывается, не имеет ни малейшего смысла и шаблонизатором, по сути, не является.
Это хорошо и полезно.

Но вот дальше ты затупил. Ты спросил,
Как можно реализовать на php способ вывода данных в цикле foreach

и тебе ответили (совершенно корректно), показав, как на РНР реализовать вывод через foreach.
Но ответ тебе не понравился. Потому что ты задал не тот вопрос, который на самом деле хотел.
На самом деле ты хотел спросить "Напишите мне шаблонизатор с нуля".
И вот на этот вопрос можно получить корректный точный ответ:

Не надо маяться дурью и изобретать велосипед. Надо взять готовый шаблонизатор и пользоваться всеми его фичами, без которых шаблонизатор немыслим, но которые до сих пор никогда не приходили тебе в голову.
Ответ написан
Комментировать
Mike77
@Mike77
lamp sf2 yii разработчик
попробуй твиг
twig.sensiolabs.org
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
Осиль twig, или smarty, лучше все равно не напишешь.

Например требуется вывод всех групп из таблицы БД в цикле foreach.

Шаблон работает с БД на прямую? Меняй драг диллера))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы