Украсьте шаблон Twig вместо того, чтобы включать его

Я работаю над небольшой ORM для моей работы, основанной на Активная запись система. Таким образом, все модели расширяют сгенерированную базовую модель (например: Foo будет расширяться BaseFooАннотация BaseFoo класс будет сгенерирован командой).

Генерация абстрактной модели основана на шаблоне Twig, включая некоторые части других шаблонов (атрибуты, геттеры). & сеттеры, основные методы и т. д.).

Но ORM должен обрабатывать систему поведения. Таким образом, поведение должно быть в состоянии украсить основной шаблон. Но с иерархической системой макетов Twig я не нахожу способ правильно украсить свой шаблон, вставляя некоторые строки в основной шаблон. Я могу справиться с этим с embed тег, вызывающий базовый шаблон и переопределяющий blocks, Но когда существует более одного поведения, идея терпит неудачу, потому что embed тег переписывает основной шаблон, чтобы он дважды записывал модель (class BaseFoo { code overrided by behavior1 } class BaseFoo { code overrided by behavior2 },

Я думал о создании новых тегов: replace "line" by "line", append "line" after "line" или же prepend "line" before "line", Но я хочу быть уверен, что нет лучшего способа украсить шаблон Twig, как, например, генерировать один за другим шаблон для всех вариантов поведения: первое поведение переопределит основной шаблон, а следующее поведение переопределит предыдущий сгенерированный шаблон путем вызова функции Twig template_from_string(),

Что вы думаете о возможности украшения шаблона Twig?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]