Вход Регистрация
ruen

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

php-html-template

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

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

  • смешивание кода HTML и PHP в одном файле выглядит некрасиво;
  • нет подсветки HTML синтаксиса, загромождается код PHP – ведь обычно 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 кода без использования сторонних шаблонизаторов не составит труда. Использование шаблонов позволит сделать разработку проекта более удобной и правильной.

Комментарии (0)
Для комментирования войдите или зарегистрируйтесь.

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

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

Eqsash (Инструменты)

Приложение для Android - VK LAST USER ID, отучитель от зависимости и т.д.:
Доступно в Google Play

Amessage (Общение)

Вход в веб-версию
Приложение для Android:
Доступно в Google Play

Поделиться

Подписаться

YouTube

Книги

IT-заметки - Простым языком о самом нужном (HTML, CSS, JavaScript, PHP, базы данных, Drupal, Битрикс, SEO, домены, безопасность и другое), PDF, 500 стр.