Я разрабатываю движок шаблонов PHP1 и я хочу разрешить синтаксис PHP наряду с синтаксисом шаблонов. В настоящее время мой процесс состоит в том, чтобы скомпилировать шаблон в php-файл (преобразовать весь синтаксис шаблона в PHP), сохранить его на диск и затем загрузить, используя include
2. Компиляция будет иметь место только в том случае, если исходный шаблон был изменен или если компиляция никогда не производилась.
Тем не менее, есть несколько проблем с этим подходом:
Есть ли другой подход к этому?
Например, следующий код:
<ul>
<?php forach( $list as $item ): ?>
<li>{{item}}</li>
<?php endforeach; ?>
</ul>
Будет скомпилировано в:
<ul>
<?php forach( $list as $item ): ?>
<li><?php echo $item ?></li>
<?php endforeach; ?>
</ul>
eval
для этого, поскольку это и дорого и опасно.
Задача ещё не решена.
Других решений пока нет …