PHP Компиляция HTML-файлов перед отправкой на внешний интерфейс


У меня есть куча HTML файлов, которые служат шаблонами для моего веб-приложения. При загрузке страницы файлы кэшируются/загружаются в браузер и отображаются в DOM по запросу в соответствии с маршрутизатором приложения. Однако некоторые из этих файлов шаблонов должны включать переменную содержимого в записи базы данных. Поэтому я обозначил местоположение этих данных в шаблонах с помощью определенного шаблона (рулей) и запускаю следующий код PHP (внутри класса), чтобы заменить местоположения данными из базы данных:

$template = '<div>{{user_name}}</div>'; //template loaded with fopen 
$this -> data['user_name'] = 'John Smith'; //data from server
$template = preg_replace_callback(
    '/{{([a-zA-Z0-9_]+)}}/',
    function($matches){
        $data = $this -> data;
        return (isset($data[$matches[1]])?$data[$matches[1]]:"");
    },
    $template);

Мне было интересно, возможно ли иметь центральную функцию в PHP, которая проходит через все файлы HTML и «компилирует» (используя вышеизложенное) перед тем, как передать их во внешний интерфейс? Я понимаю, что вы можете просто преобразовать каждый шаблон .html в файл .php и предварительно сформировать операции внутри и повторить результат, но я чувствую, что должно быть более усовершенствованное/масштабируемое решение.


person Andreas Jarbol    schedule 04.10.2013    source источник
comment
Если у вас есть только статические html-файлы, вы можете разбирать HTML-файлы как PHP, и вы также может запускать функцию PHP после каждого запроса< /а>.   -  person Denis    schedule 04.10.2013
comment
Хорошо, однако мне нужно будет добавить PHP-скрипт в html-файлы шаблона, и я хотел бы сохранить этот чистый html, а значит, и руль в первую очередь.   -  person Andreas Jarbol    schedule 04.10.2013
comment
Я предложил запускать функцию после каждого запроса независимо от содержимого файла. Пожалуйста, взгляните на мою ссылку.   -  person Denis    schedule 04.10.2013
comment
В какой момент вы хотели скомпилировать эти файлы? По требованию; JIT как бы? Тогда не будет большой разницы в эффективности с использованием обычного PHP-файла. Или вы хотели скомпилировать их заранее и хранить как статические документы HTML до тех пор, пока они не будут запрошены?   -  person Mr Lister    schedule 04.10.2013
comment
did you want to compile them beforehand and keep them around as static HTML documents until they are requested да, это то, чего я пытаюсь добиться..   -  person Andreas Jarbol    schedule 04.10.2013
comment
Я, вероятно, мог бы сделать то, что вы говорите @Denis, но как мне преобразовать все HTML в строку PHP и обработать ее со сценарием, включенным до или после запроса? Не могли бы вы сделать что-то вроде file_get_html('this'), и в таком случае, что бы это было?   -  person Andreas Jarbol    schedule 04.10.2013
comment
Вы используете ob_start с обратным вызовом в начале.   -  person Denis    schedule 04.10.2013
comment
О, подлый, но HTML, уже включенный в файл, нужно будет перезаписать или, по крайней мере, удалить, а кеш ob будет эхом, как мне подойти к этому? Кстати. спасибо за отличные комментарии - теперь я понимаю :)   -  person Andreas Jarbol    schedule 04.10.2013