Вы здесь

Component Libraries

Регистрация «библиотек компонента» системы Twig определённых в модуле и теме.

Модуль Component Libraries регистрирует в «библиотеку компонентов» определённую в теме и модуле как пространство имён Twig.

Что такое пространство имён Twig?

Twig предоставляет возможность, которая называется «пути в пространстве имён». Ядро Друпала регистрирует множество пространств имён Twig, поэтому можно сослаться на шаблон Twig из определённого модуля и темы. Например, вы наверное видели такое:

{% extends "@classy/block/block--system-menu-block.html.twig" %}

Текст @classy указывает на пространство имён Twig, к которому мы хотим обратиться для получения шаблона Twig.

Зачем использовать своё пространство имён Twig?

Современные техники применяемые во фронт-энд-разработке требуют, чтобы наличия библиотеки компонентов, в которой каждый компонент связан с определённым элементом дизайна. Но ядро Друпала не предоставляет библиотеку компонентов для своего дизайна. Вместо этого, ядро Друпала регистрирует пространство имён Twig для каждого модуля и темы — @bartik, @system и так далее. Все эти шаблоны Twig разработаны для определённых хуков и данных (документы, комментарии, виды и так далее) темы, и должны размещаться в папке /templates, находящейся в модуле и теме.

В идеале, мы хотели бы поместить наши шаблоны Twig библиотеки компонентов в отдельные папки, но ядро Друпала затрудняет использование шаблонов Twig размещённых вне папки /templates.

Модуль Component Libraries позволяет определить разные папки для файлов Twig библиотеки компонентов и регистрирует уникальное пространство имён Twig для этих файлов. Вот так можно зарегистрировать библиотеку компонента myLib в файле .info.yml модуля и темы:

component-libraries:
  myLib:
    paths:
      - myLibFiles

Если у вас есть шаблон Twig по пути [тема]/myLibfiles/box/box.twig, то его можно расширить, включить или встроить используя ссылку на @myLib/box/box.twig. Например, в файл [тема]/templates/page.html.twig можно добавить:

{% include "@myLib/box/box.twig" %}

Это позволит определить точный компонент в свой библиотеке компонента вне зависимости от того, что Друпал решил, что он должен использоваться в стиле шаблонов Twig предлагаемом Друпалом 8.

Группа проекта: