Twig. Базовая настройка
В прошлой статье мы начали обсуждать, что такое шаблонизатор Twig, а в этой статье мы продолжим рассматривать его и начнем с основной настройки и базового использования.
Для начала нам необходимо создать простой проект. Затем следует произвести загрузку самого шаблонизатора. Создаем файл init.php со следующим содержимым:
<?php
// загрузка автозагрузчика
require_once __DIR__.'/vendor/autoload.php';
// место где будут хранятся шаблоны Twig
$loader = new Twig_Loader_Filesystem(__DIR__.'/views');
// инициализация самого движка
$twig = new Twig_Environment($loader);
?>
Главным объектом всех этих манипуляций является класс Environment. Он используется для хранения всякого рода настроек, а также для загрузки шаблонов либо из файловой системы, либо из каких-либо других мест.
После инициализации шаблонизатора, нам нужно создать файл index.php, где все действо по загрузке данных и передаче их в шаблон и будет происходить. Вот код:
<?php
require_once __DIR__.'/init.php';
// Создаем список сотрудников
$staff = [
[
'name' => 'Андрей',
'description' => 'Физика',
'age' => 29,
'date_register' => '2017-06-23',
],
[
'name' => 'Татьяна',
'description' => 'Химия',
'age' => 25,
'date_register' => '2017-06-22',
],
[
'name' => 'Наталья',
'description' => 'Алгебра',
'age' => 27,
'date_register' => '2017-10-25',
],
];
// вывод данных на страницу
echo $twig->render('index.html', ['staff' => $staff] );
В примере выше мы создали вымышленный список сотрудников школы. На самом деле такого рода данные обычно хранятся в базе, но для простоты и наглядности я их представил в таком виде. Вызываем метод render() класса Environment шаблонизатора Twig и передаем в него первым аргументом имя файла шаблона – index.html, который хранится в папке views. Вторым аргументом мы передаем ассоциативный массив следующей структуры:
['имя_переменной_в_шаблоне' => $имя_переменной_в_коде],
где 'имя_переменной_в_шаблоне' – это имя переменной с данными, которое нам будет доступно в шаблоне.
Для наглядности всего сказанного перейдем в папку /views, где создадим файл index.html. Напишем в нем следующий код:
<!DOCTYPE html>
<html lang="ru-RU">
<head>
<meta charset="UTF-8">
<title>Учителя Школы</title>
</head>
<body>
<table border="1" style="width: 80%;">
<thead>
<tr>
<td>Имя</td>
<td>Предмет</td>
<td>Возраст</td>
<td>Начал(а) работать</td>
</tr>
</thead>
<tbody>
{% for staffer in staff %}
<tr>
<td>{{ staffer.name }}</td>
<td>{{ staffer.description }}</td>
<td>{{ staffer.age }}</td>
<td>{{ staffer.date_register|date("m/d/Y") }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
Для простоты я буду использовать встроенный в PHP сервер:
// переходим в папку с проектом
// допустим что весь проект хранится в папке www
C:/> cd www
// опции встроенного сервера localhost – адрес, 8080 - порт
C:/> php –S localhost:8080
Открываем браузер, набираем в адресной строке localhost:8080 и вот, что у нас получилось:
Теперь внимательнее взглянем на код шаблона.
В шаблонизаторе Twig по умолчанию используются два вида базовых конструкций: {{…}} используется для вывода на страницу результата выполнения операции или выражения ( похоже на функцию print ), а конструкция {% … %} – для обрамления инструкций, чтобы отделить их от остального кода шаблона (аналог <?php ?>).
Таким образом, из статьи вы узнали, как инициализировать шаблонизатор Twig и создать шаблон (представление), познакомились с базовыми конструкциями Twig.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.