Статьи

Начните разработку WordPress с Twig: Введение

Много было написано о будущем WordPress, и многие считают, что ему не хватает языка шаблонов, особенно когда такие платформы, как Django, Ruby on Rails, Node.js, Laravel и даже Drupal, есть. Такие факты, как « WordPress поддерживает почти 25% веб-сайтов», усложняют вопрос о его нынешней системе шаблонов на основе PHP. Но поскольку модульность в коде все еще отсутствует, можно спросить, когда ядро ​​будет иметь шаблонизатор.

Хорошие новости прямо здесь! Шаблонизатор Twig вместе с плагином Timber может помочь нам написать суперчистый и модульный код в WordPress. В этой серии мы обсудим его реализацию и интеграцию с WordPress. Я начну с самых основ того, что такое Twig и зачем он вам нужен, и в следующих трех статьях я расскажу о различных типах шаблонов Twig, интегрированных с WordPress через Timber.

Twig — гибкий, быстрый и безопасный шаблонизатор для PHP. Twig предоставлен вам Fabien Potencier , создателем платформы Symfony , и считается многофункциональным, обширным, быстрым и эффективным.

Обычно, когда вы кодируете в WordPress, вы смешиваете кусочки PHP с HTML (это то, что мы называем спагетти-кодом ). Это не считается сверхчистой разметкой. Для модульного подхода и подхода Doing it Right ™ необходимо отделить представление от Data . С Twig вы можете отделить слой представления от остальной части приложения. Twig работает по шаблону модель-представление-контроллер (MVC) и помогает поддерживать чистый код.

За прошедшие годы были разработаны различные шаблоны PHP, но Twig наверняка превосходит их по следующим показателям.

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

Шаблоны, которые компилируются с помощью Twig, несут гораздо меньше накладных расходов по сравнению с обычными шаблонами PHP. Процедуры кодирования становятся высоко оптимизированными, и вы экономите много времени на разработке. Это также полезно, когда вы планируете изменить базовую платформу, поскольку Twig помогает создать отдельный шаблонный слой, который может быть связан с любой серверной платформой, будь то Laravel или WordPress.

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

Давайте начнем с простого примера.

В обычном PHP вы получите такой вывод:

1
2
<?php echo $foo;
<?php echo htmlspecialchars( $foo, ENT_QUOTES, ‘UTF-8’ ) ?>

В Twig все становится намного проще, т.е. приведенный выше код сжимается в:

1
2
3
{{ foo }}
{{ foo|escape }}
{{ foo|e }} {# shortcut to escape a variable #}

Выход из выхода в Twig очень прост. Просто добавьте двойные скобки, введите имя переменной, и вы получите вывод. Поместите трубу с буквой e рядом с ней, и мы начали убегать. Подробнее об этом в следующих трех статьях этой серии.

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

1
{{ include( ‘post.html’, sandboxed = true ) }}

В случае любой синтаксической ошибки Twig отлаживает ваш файл, генерируя сообщение, содержащее такие данные, как ваше имя файла и номер строки с проблемным кодом.

Я только что упомянул, что Twig — это современный шаблонизатор, который также означает, что вы можете расширить его функциональность, поскольку он достаточно гибкий. Он полностью поддерживает эффективный лексер и парсер, с помощью которого разработчики могут определять собственные теги, фильтры, функции и т. Д.

Помимо всех функций, упомянутых выше, Twig очень хорошо документирован и полностью протестирован. Его API и библиотеки шаблонов полностью стабильны и могут обрабатывать любые сложные задачи. Также доступна специальная онлайн-книга и полная документация по API.

Twig служит новым языком шаблонов для Drupal 8, что является моей главной мотивацией для уверенного использования этого шаблонизатора. Хорошие люди в XWP , особенно Уэстон Рутер , работают над предложением привести Twig в соответствие с VIP- стандартами WordPress.com .

До сих пор вся дискуссия вращалась вокруг двух вещей. Во-первых, мы должны использовать модульный подход, чтобы отделить шаблоны от данных при создании пользовательских тем WordPress, а во-вторых, Twig может помочь нам в этом. Но что объединяет этих двоих?

Были предприняты различные усилия для достижения наилучшей интеграции между Twig и WordPress, и одной из таких смелых попыток является Timber , созданный веб-агентством Upstatement . Он использует шаблонизатор Twig, который позволяет писать модульный и чистый код в WordPress.

Timber вместе с Twig может помочь вам создать быстрые и модульные темы WordPress. Таким образом, вы можете хранить ваш HTML-код отдельно от обычных PHP-файлов, обеспечивая более устойчивый шаблон кода. Концепция разделения HTML и PHP позволяет файлу PHP сосредоточиться исключительно на предоставлении data и логики, в то время как файл HTML (файл Twig) концентрируется на уровне представления веб-приложения.

В целом Timber выполняет три основные задачи:

  • Он интегрирует Twig в WordPress.
  • Это делает шаблоны Twig.
  • Он добавляет базовый набор данных WordPress.

Я думаю, что их миссия говорит все это:

Timber — это инструмент для разработчиков, которые хотят перевести свой HTML в высококачественные темы WordPress через интуитивно понятный, согласованный и полностью доступный интерфейс.

  • Интуитивно понятный : API написан так, чтобы ориентироваться на пользователя и соответствовать ожиданиям программиста.
  • Согласованно : ко всем объектам WordPress можно получить доступ через полиморфные свойства, такие как slug, ID и name.
  • Доступно : нет черных ящиков. Делается все возможное, чтобы разработчик имел доступ к 100% своего HTML.

В случае обычной темы WordPress все фрагменты кода PHP и HTML объединяются и модифицируются в одних и тех же файлах шаблонов PHP. Однако в Timber мы разделяем файлы шаблонов на два разных файла данных: файл PHP и файл представления / шаблона, то есть файл Twig.

Итак, первый сохраняется с расширением .php а второй имеет расширение .twig . Поэтому, если вы создаете файлы шаблонов для single.php , ваши файлы будут называться single.php и single.twig .

Первый файл объединяет данные, а второй — это шаблон, который использует данные в HTML. Таким образом, вы можете добавлять динамические операции в ваши темы WordPress модульным способом.

Давайте подведем итог всему этому:

Timber обрабатывает файлы шаблонов вашей темы WordPress в файлах PHP и HTML (Twig). Таким образом вы отделяете логику от отображения. Он предоставляет вам новые способы создания, стилизации и отображения вашей темы.

В Twig есть что любить. Эта статья была только введением о преимуществах использования шаблонизатора с WordPress. Модульный код — лучший код и его легко обслуживать. Пришло время разработчикам принять этот сдвиг рабочего процесса, и я уверен, что Twig может помочь им в этом.

В следующих статьях я покажу практическую реализацию файлов шаблонов с помощью Twig. Мы рассмотрим, как мы можем реализовать Twig для рендеринга WP изображений, комментариев и меню, с примерами кода. До тех пор, если вы найдете какие-либо вопросы, не стесняйтесь спрашивать. Не забудьте обратиться в Twitter .