dr.Brain

doctor Brain

мир глазами веб-разработчика

Как создать шаблон?

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

dr.Brain

время чтения 2 мин.

Photo by Kaleidico on Unsplash

Имея в своем арсенале такие инструменты, как шаблонные литералы (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 "";
}

Преимущества такого подхода лежат на поверхности:

  1. чтобы актуализировать данные, достаточно внести изменения только в одном месте,
  2. внесенные изменения затронут все участки кода, где используется созданный таким образом шаблон.

В теле функции вместо вызова строка я решил использовать не самый популярный синтаксис 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”.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.