Веб-разработка, логотип Eqsash

Разделение PHP и HTML кода, использование шаблонов

php-html-template

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

Почему необходимо отделять HTML от PHP? Причин может быть несколько:

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

Для примера создадим файл с расширением tpl, в котором будет храниться HTML код. Это и будет наш шаблон, расширение файла можно сделать любое, tpl здесь просто для примера. Соответственно в редакторе кода можно задать подсветку синтаксиса HTML для этого расширения (к примеру в Notepad++). В этом файле прописываются нужные переменные, которые необходимо будет заменить на нужные данные. Пример шаблона:

<div>
	<span><?=$variable?></span>
	<span><?=$variable2?></span>
</div>

Далее создаем некоторую функцию, например – myfunction, в которой есть данные и путь к шаблону:

function myfunction() {
	$template_path = '/templates/template.tpl';
	
	$data = array(
		'variable' => 'Значение',
		'variable2' => 'Значение 2',
	);
	
	$html = get_html($template_path, $data);
	
	echo $html;
}

Наконец, необходимо создать функцию get_html, которая будет выполнять работу по подключению указанного шаблона и заменять в нем данные. Функция принимает два параметра: путь к шаблону и данные. В цикле происходит проход по всему содержимому массива data и создаются переменные. Затем включается буферизация и подключается шаблон, в котором используются вышесозданные переменные. В завершении прекращаем процесс буферизации и возвращаем готовый HTML код. Примерный код приведен ниже:

function get_html($template_path, $data) {
	foreach ($data as $key => $value) {
		$$key = $value;
	}

	ob_start();
	require($template_path);
    	$html = ob_get_clean();
	
	return $html;
}

Таким образом, отделить HTML от PHP кода без использования сторонних шаблонизаторов не составит труда. Использование шаблонов позволит сделать разработку проекта более удобной и правильной.

Оставить заявку

Последние статьи

Популярные разделы