Генерируем UUID прямо в шаблоне

Понадобилось мне сгенерировать уникальный код, чтобы привязать уникальные стили к конкретному контейнеру. Функция random в twig чаще всего достаточна для этой цели. Но хотелось пойти немного дальше, и вытащить сервис генерации UUID.

Это нам приводит к задаче создания плагина для TWIG в Drupal.

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

Шаг 1: Создание плагина Twig

В Drupal расширения для Twig реализуются через создание класса, который наследуется от Twig\Extension\AbstractExtension. Этот класс предоставляет методы для добавления пользовательских функций и фильтров в Twig.

В нашем случае нужно добавить функцию для генерации UUID. Мы будем использовать сервис uuid в Drupal 11, который уже имеет метод для генерации уникальных идентификаторов.

Шаг 2: Реализация плагина

Создайте файл UuidExtension.php в директории вашего модуля. Например, если ваш модуль называется tweaks, путь к файлу будет следующим:

Теперь реализуем сам плагин:

Шаг 3: Регистрация плагина в Drupal

Для того чтобы Drupal знал о вашем расширении, его необходимо зарегистрировать. Для этого нужно добавить информацию о плагине в файл tweaks.services.yml в вашем модуле:

Этот код регистрирует ваше расширение как сервис и привязывает его к тегу twig.extension, что позволяет Drupal автоматически загрузить расширение в Twig.

Шаг 4: Использование плагина в шаблонах

После того как плагин зарегистрирован, вы можете использовать его в шаблонах Twig, чтобы генерировать UUID. Для этого просто вызовите функцию generate_uuid:

Этот код в шаблоне Twig сгенерирует уникальный идентификатор каждый раз, когда он будет вызван.

Мало букафф? Читайте есчо !

Unit-тесты в Drupal 11: настройка PHPUnit и примеры запуска

Июнь 30, 2025 г.

Если вы только начинаете писать тесты в Drupal, то официальная документация — первое место, куда стоит заглянуть. Однако она не всегда отвечает на все вопросы новичков. В этой статье разберём несколько моментов, которые часто вызывают недоумение. ...

Читать
 

Комментарии к «Генерируем UUID прямо в шаблоне»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: