include — обработка файла PHP перед его включением

Я разрабатываю движок шаблонов PHP1 и я хочу разрешить синтаксис PHP наряду с синтаксисом шаблонов. В настоящее время мой процесс состоит в том, чтобы скомпилировать шаблон в php-файл (преобразовать весь синтаксис шаблона в PHP), сохранить его на диск и затем загрузить, используя include2. Компиляция будет иметь место только в том случае, если исходный шаблон был изменен или если компиляция никогда не производилась.

Тем не менее, есть несколько проблем с этим подходом:

  1. Я не могу быть уверен, достаточно ли у меня прав для создания новых файлов
  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>

[1] Я знаю, что есть сотни таких, но этот должен быть ответом на особые случаи. Цель состоит в том, чтобы улучшить встроенный в PHP движок шаблонов, а не заменять его вообще, как другие движки.
[2] Обратите внимание, что я не хочу использовать eval для этого, поскольку это и дорого и опасно.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]