Лучший способ создать «интерпретатор шаблонов» в PHP - PullRequest
1 голос
/ 28 июня 2010

Я размещаю решение для нескольких областей, написанное на PHP, и у каждого клиента есть свой собственный шаблон в некоторых файлах HTML. Теперь я хочу, чтобы эти пользователи могли использовать некоторые фрагменты динамического контента, но они не могут использовать PHP. Я думал что-то вроде:

В файле HTML, если я поставлю это:

<ul>[menu-list]</ul>

Будет выводить что-то вроде:

<ul><li><a[...]>Home</a></li><li><a[...]>About</a></li>[...]</ul>

Есть ли лучший способ сделать это, чем продолжать разбирать и кэшировать файлы через file_get_contents() и preg_match_all()?

Я хочу создать около 20 записей, таких как [menu-list], и разбор каждого файла для всех мне кажется довольно дорогим.

Буду признателен за любое предложение. = D

Ответы [ 2 ]

1 голос
/ 28 июня 2010

Возможно, вам следует рассмотреть возможность использования компилятора шаблонов вместо интерпретатора шаблонов. То есть вместо каждой загрузки страницы, выполняющей всю процедуру замены, вы можете просто выполнить замену после изменения шаблона. Во время редактирования шаблона стоимость должна быть незначительной. Чтобы реализовать эту компиляцию, вы можете выбрать «компиляцию» в некоторых панировочных сухарях, чтобы вы могли вернуться назад, или вы можете просто сохранить исходные файлы шаблонов для последующего редактирования.

В качестве альтернативы, вы можете рассмотреть возможность использования соглашений об именах переменных PHP и запуска шаблонов через eval, но это создает ряд других проблем (например, угроз безопасности) и не очень рекомендуется.

0 голосов
/ 28 июня 2010

Почему вы не можете использовать Smarty и друзей?Я не хотел бы писать то, что вы предлагаете себе.

...