Каков наилучший способ включить php-файл в качестве шаблона?

У меня есть простой шаблон, который является html в основном, а затем извлекает некоторые вещи из SQL через PHP, и я хочу включить этот шаблон в три разных точки другого файла php. Каков наилучший способ сделать это? Могу ли я включить его, а затем распечатать содержимое?

Пример шаблона:

Price: <?php echo $price ?> 

и, например, у меня есть еще один php-файл, который будет показывать файл шаблона только в том случае, если дата больше двух дней после даты в SQL.

Лучший способ – передать все в ассоциативном массиве.

 class Template { public function render($_page, $_data) { extract($_data); include($_page); } } 

Чтобы создать шаблон:

 $data = array('title' => 'My Page', 'text' => 'My Paragraph'); $Template = new Template(); $Template->render('/path/to/file.php', $data); 

Ваша страница шаблона может быть примерно такой:

 <h1><?php echo $title; ?></h1> <p><?php echo $text; ?></p> 

Extract – действительно отличная функция, которая может распаковать ассоциативный массив в локальное пространство имен, чтобы вы могли просто делать такие вещи, как echo $title; ,

Изменить: добавлены символы подчеркивания для предотвращения конфликтов имен на случай, если вы извлечете что-то, содержащее переменную «$ page» или «$ data».

Поместите ваши данные в массив / объект и передайте его следующей функции в качестве второго аргумента:

 function template_contents($file, $model) { if (!is_file($file)) { throw new Exception("Template not found"); } ob_start(); include $file; $contents = ob_get_contents(); ob_end_clean(); return $contents; } 

Затем:

 Price: <?php echo template_contents("/path/to/file.php", $model); ?>