Установка и начало работы с Twig

Что такое Twig?

Twig – это современный дружественный шаблонизатор, разработанный для PHP. Будучи более эффективным шаблонным движком, он является отличной альтернативой PHPTemplate при разработке веб-приложения. Его синтаксис очень прост для понимания. Кроме того, Twig устраняет необходимость выполнения лишних динамических PHP-операций в файлах шаблона.

Данное руководство продемонстрирует, как установить Twig на виртуальный выделенный сервер и начать работу с ним.

Примечание: предполагается уже настроенного облачного сервера (предпочтительно Linux). Кроме того, нужно установить LAMP stack (хотя база данных для выполнения руководства не нужна). Для корректной работы Twig также требуется PHP 5.2.4+.

Зачем нужен Twig?

Зачем нужны шаблонизаторы в целом? Все очень просто: для разделения задач. Чтобы рассмотреть этот вопрос на примерах, создайте папку проекта в root-каталоге веб-сервера (/var/www) и назовите его twig:

cd /var/www
mkdir twig
cd twig

Теперь создайте еще пару папок для этого небольшого тестового приложения: одну для PHP-файлов, вторую – для шаблонов Twig соответственно:

mkdir app
mkdir views

В папке app создайте одноименный php-файл.

nano app/app.php

В него внесите следующий код, который выведет на страницу сообщение «Hello World»:

<?php echo "<h1>Hello world!</h1>" ?>

Сохраните файл и направьте на него браузер (для этого используйте формат ip-адрес/twig/app/app.php). Должно появиться сообщение «Hello world!» в виде заголовка H1.

Так почему бы не использовать этот формат постоянно? Дело в том, что такой PHP-файл может стать гораздо больше и сложнее (что происходит в большинстве случаев), а это повлечет большие проблемы с разработкой макета сайта. Кроме того, тег Н1 был закодирован в непосредственно в echo, что также не лучший вариант работы.

Если над проектом совместно с разработчиком будет работать дизайнер, то ему придется рыться в этом файле, а этого желательно не допускать.

Таким образом, выходом из сложившейся ситуации является разделение презентации (макета) и логики (программирования) проекта; лучший способ сделать это – использовать механизм шаблонов (например, Twig).

Созданное только что приложение еще понадобится после установки Twig.

Установка Twig

Рекомендуется устанавливать Twig через Composer, инструмент управления зависимостями PHP. За информацией об этом инструменте можно обратиться к руководству «Установка и использование Composer».

Скачайте инсталлятор Composer в root-папку приложения (twig):

cd /var/www/twig
curl -s http://getcomposer.org/installer | php

Это загрузит файл по имени composer.phar, который является исполняемым файлом Composer. Затем создайте файл с названием composer.json:

nano composer.json

И внесите в него следующий код:

{
"require": {
"twig/twig": "1.*"
}
}

Благодаря этому коду приложение будет зависить от движка шаблонов Twig. Теперь давайте использовать команду composer, чтобы установить зависимости:

php composer.phar install

Теперь файлы Twig загружены в папку vendor/Twig. Если добавить других зависимостей, они также будут установлены в папке vendor.

Теперь нужно «подключить» этот файл к приложению. Опять же, можно использовать функцию автозагрузчика Composer, чтобы загрузить все установленные зависимости. Откройте файл app.php:

nano app/app.php

Удалите все его содержимое и внесите эту строку:

<?php require_once '../vendor/autoload.php'; ?>

Данная строка загрузит автозагрузчик Composer, который, в свою очередь, загрузит Twig. Если Twig был установлен другим способом, понадобится автозагрузчик Twig:

require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

При использовании Composer в этом нет необходимости.

Под командой require нужно поместить файл шаблона Twig и задать переменную, которую нужно вывести на страницу. Вставьте следующий код:

<?php $loader = new Twig_Loader_Filesystem('../views/'); ?>
<?php $twig = new Twig_Environment($loader); ?>
<?php echo $twig->render('page.html', array('text' => 'Hello world!')); ?>

Во-первых, это создаст объект загрузчика, которому передается путь к папке, содержащей файлы шаблонов (пустая на данный момент папка views была создана ранее). Кроме того, этот код также создаст объект среды, в котором хранится конфигурация. В завершение, строка render объекта среды загружает файл шаблона, заданный в качестве первого аргумента и визуализирует его с учетом переменных, заданных в качестве второго аргумента. Теперь нужно создать файл page.html, в который можно внести переменные, содержащие текст, который нужно отобразить.

nano views/page.html

В него внесите следующее:

<h1>{{ text }}</h1>

Если сохранить этот файл и перезапустить файл app.php в браузере, на страницу будет выведен текст, взятый в теги Н1. Теперь, создав этот файл, можете поэкспериментировать с ним. Переменные, заданные через функцию render, теперь можно вносить в фигурные скобки.

Ради эксперимента можете передать несколько переменных шаблону, использовать их в управляющих структурах, обработать их с помощью функций шаблонов или применить фильтры Twig.

Итоги

Это руководство продемонстрировало установку Twig через Composer, а также вывод на экран простых переменных с помощью отдельных файлов шаблонов. Следующее руководство этой серии более подробно рассматривает использование синтаксиса Twig для разработки файлов шаблонов.

Tags: , , , , ,

Добавить комментарий