Как создать шаблон?
создаем простой шаблон для HTML-кода на чистом PHP, без использования сторонних библиотек
Имея в своем арсенале такие инструменты, как шаблонные литералы (template literals) для JavaScript и синтаксический сахар (например, JSX), я, конечно, привык упаковывать фрагменты HTML-кода в переменные и использовать их в проекте по своему усмотрению.
Но, однажды, подобное решение мне пришлось воплотить на чистом PHP. Им я и хочу поделиться.
Итак, на входе у меня были приблизительно такие данные:
$title = "The Title";
$desc = "Some information about this thing blah blah.";
$img = "/images/header.jpg";
Приведенные выше значения часто изменялись и многократно использовались в проекте. Имено поэтому, я захотел создать функцию, которая будет получать эти данные, как аргументы, и выдавать результат в виде уже готового фрагмента HTML-кода.
function echo_card($title = "Default Title", $desc = "Default Description", $img = "/images/fallback.jpg") {
echo "";
}
Преимущества такого подхода лежат на поверхности:
- чтобы актуализировать данные, достаточно внести изменения только в одном месте,
- внесенные изменения затронут все участки кода, где используется созданный таким образом шаблон.
В теле функции вместо вызова строка я решил использовать не самый популярный синтаксис HEREDOC, схожий с шаблонными литералами в JavaScript.
function echo_card($title = "Default Title", $desc = "Default Description", $img = "/images/fallback.jpg") {
$html = <<<"EOT"
<div class="card">
<img src="$img" alt="">
<h2>$title</h2>
<p>$desc</p>
</div>
EOT;
echo $html;
}
В результат я получил функцию, вызывая которую, я мог вывести в нужно мне месте HTML-шаблон с необходимыми данными.
echo_card($title, $desc, $img);
Лично я считаю такой подход практичным и удобным, не требующим подключения дополнительных библиотек.
Спасибо за внимание.
По материалам статьи Chris Coyier “PHP Templating in Just PHP”.