Команда make:twig-component
Команда make:twig-component создаёт новый
Twig-компонент в проекте Symfony. Компонент
состоит из Twig-шаблона и, опционально,
PHP-класса, который обрабатывает входные данные
перед рендерингом. Первым параметром команде
передаётся имя компонента, вторым необязательным
флагом --no-interaction можно отключить
интерактивный режим. Компоненты удобны для
создания независимых блоков интерфейса, таких
как карточки, кнопки или панели.
Синтаксис
php bin/console make:twig-component name
Пример
Давайте создадим Twig-компонент с именем
ArticleCard:
php bin/console make:twig-component ArticleCard
В интерактивном режиме команда спросит,
нужно ли создавать PHP-класс для компонента.
Ответим yes. Результат выполнения команды:
created: templates/components/ArticleCard.html.twig
created: src/Twig/Components/ArticleCard.php
Пример
Команда создала файл компонента
templates/components/ArticleCard.html.twig:
<div {{ attributes }}>
{{ title }}
</div>
А также PHP-класс компонента
src/Twig/Components/ArticleCard.php:
<?php
namespace AppTwigComponents;
use SymfonyUxTwigComponentAttributeAsTwigComponent;
#[AsTwigComponent]
class ArticleCard
{
public string $title = '';
}
?>
Пример
Давайте используем компонент в другом шаблоне и передадим ему заголовок:
{% for item in items %}
<twig:ArticleCard title="{{ item }}" />
{% endfor %}
Если контроллер передаёт в шаблон массив
items со значениями
['article 1', 'article 2'],
то результат выполнения кода будет таким:
<div>
article 1
</div>
<div>
article 2
</div>
Смотрите также
-
команда
make:controller,
которая создаёт контроллер -
команда
make:form,
которая создаёт класс формы -
команда
lint:twig,
которая проверяет синтаксис Twig-шаблонов -
команда
debug:twig,
которая показывает информацию о Twig-шаблонах