2015-05-15 6 views
0

Я пытаюсь следовать за atomic design pattern с веточкой.Твиг и атомный рисунок - Чистая рендеринг веточки

При рендеринге простой атом, что мне нужно сделать что-то вроде:

{% include '@MyBundle/Resources/views/atoms/button/button.html.twig' with { href: '/section1', text: 'Example text' } only %} 

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

Я был бы удивительным, чтобы быть в состоянии сделать что-то вроде:

{% button('/section1','Example text') %} 

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

Есть ли опыт вокруг этого? Ура!

ответ

1

Вы можете использовать структуру macro. Читайте документацию: http://twig.sensiolabs.org/doc/tags/macro.html

{% macro button(href, text) %} 
    {% here you can place your template %} 
{% endmacro %} 

Затем вам нужно будет только импортировать файл с веткой macro один раз. После этого вы можете использовать конструкцию, например, {% button('/section1','Example text') %}.

+0

Спасибо! Это отличная отправная точка и намного проще и чище, чем использование функций. – 3oheme