Эквивалент PHP для партитур / коллекций шаблонов RoR

Я пытаюсь выяснить наиболее эффективный способ реализации партитур / коллекций в стиле RoR для класса шаблона PHP, который я пишу. Для тех, кто не знаком с рельсами, я хочу перебирать фрагмент шаблона (например, строку таблицы или элемент списка), расположенную в отдельном файле. Я хочу сделать это, не прибегая к eval или помещению включения в цикл .

Я видел аналогичную запись, в которой рассматриваются отдельные частичные элементы, которые тривиальны, но ничего не охватывает реализацию частичных элементов в коллекции. Я думал об этом так долго, когда у меня болит голова, и я боюсь, что я упускаю из виду очевидное решение. Я надеюсь, что кто-то здесь может предложить элегантное решение, которое, опять же, не требует eval или включает в цикл. ТИА.

Solutions Collecting From Web of "Эквивалент PHP для партитур / коллекций шаблонов RoR"

Вам нужен механизм шаблонов, который может обрабатывать сам по себе, а затем анализировать все сразу. Как работает препроцессор c.

Шаг 1 (исходный шаблон):

$template = ' foreach($bigarray as $record) #include "template_for_record.php" ' 

Шаг 2 (после предварительной обработки):

 $template = ' foreach($bigarray as $record) // include statement replaced with file contents echo $record['name'] etc ' 

Шаг 3 (окончательный рендеринг)

  // eval() only once eval($template); 

Таким образом, вы можете избежать накладных расходов на уклонение / включая подтемы на каждом шаге цикла.

Вы спрашиваете, как сделать что-то, не прибегая к решению.

Любая используемая вами система шаблонов будет использовать eval или include в цикле, даже если она похожа на абстракцию глубиной 1000 слоев.

Вот как это делается.