Как использовать настраиваемую PHP-шаблонную систему

Мы создаем приложение и хотели бы отделить часть html от части кода (php), как мы можем использовать следующий файл шаблона с php?

<h1>{$heading}</h1> <p>{$content}</> 

И php-код как следующий …

 <?php $heading = $row['heading']; $description = $row['content']; ?> 

как мы можем включить tpl-файл и использовать его? Благодарю.

Solutions Collecting From Web of "Как использовать настраиваемую PHP-шаблонную систему"

На самом деле, это непригодная система шаблонов.

Представьте, что на странице будет 20 заголовков и 20 описаний? Собираетесь написать их все? А затем HTML изменился, и вам придется менять его 20 раз? В таком шаблоне нет никакой пользы.

На самом деле, нет никакой разницы в отделении HTML от PHP .

Это бизнес-логика должна быть отделена от логики представления , так как вам все равно придется использовать какую-то логику в вашем шаблоне. И PHP так же хорош для этого, как и любой другой язык шаблонов .

Просто отделите свой код на 2 части: получение части данных и отображение части.

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

Ну, вот пример такого разделения.
Представьте, что у вас есть links.php страница содержит ссылки на дружественные сайты. эта страница должна получить все необходимые данные, а затем вызвать шаблон:

 <? //include our settings, connect to database etc. include dirname($_SERVER['DOCUMENT_ROOT']).'/cfg/settings.php'; //getting required data $DATA=dbgetarr("SELECT * FROM links"); $pagetitle = "Links to friend sites"; //etc //and then call a template: $tpl = "links.tpl.php"; include "main.tpl.php"; ?> 

где main.tpl.php – ваш основной шаблон сайта, включая общие части, такие как заголовок, нижний колонтитул, меню и т. д .:

 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>My site. <?=$pagetitle?></title> </head> <body> <div id="page"> <? include $tpl ?> </div> </body> </html> 

и links.tpl.php – это фактический шаблон страницы:

 <h2><?=$pagetitle?></h2> <ul> <? foreach($DATA as $row): ?> <li><a href="<?=$row['link']?>" target="_blank"><?=$row['name']?></a></li> <? endforeach ?> <ul> 

Вы не должны переписывать проверенную и существующую функциональность, если у вас нет веской причины. Эта разметка очень похожа на Smarty. Взгляните на это: http://www.smarty.net/

Если вы хотите переписать его, вы можете посмотреть буферизацию вывода. Или вы можете создать свою собственную среду представления, где вы устанавливаете переменные для объекта представления, и он выполняет все управление кодом / областью для вас ala Zend, CakePHP