Много было написано о будущем 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 наверняка превосходит их по следующим показателям.
Функция-Rich
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 .
Timber: интеграция ветки с WordPress
До сих пор вся дискуссия вращалась вокруг двух вещей. Во-первых, мы должны использовать модульный подход, чтобы отделить шаблоны от данных при создании пользовательских тем 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 .