Это не очень хорошая идея, потому что не каждый шаблон должен расширять макет: есть некоторые «системные» шаблоны, такие как form_div_layout.html.twig
, которые не предназначены для расширения чего-либо. Кроме того, не каждый шаблон, который вы пишете, должен расширять макет; вы встретите множество вариантов использования небольших встраиваемых шаблонов для ссылок из других шаблонов.
Если вы попытаетесь наложить макет на каждый шаблон, вам придется написать некоторую логику, чтобы исключить «системные» и встраиваемые шаблоны, чтобы они ничего не расширяли, и вам придется сделать то же самое для Ваш шаблон макета тоже, чтобы он не расширялся бесконечно. В этом случае вы решите проблему: вместо того, чтобы явно определять, какой макет расширять в каждом шаблоне, вам придется явно указать, какие шаблоны должны , а не расширять ваш макет. Это будет очень грязно и очень быстро.
Чтобы понять эту идею более полно, вам нужно знать, что за кулисами шаблоны на самом деле являются просто классами PHP. Имеет ли смысл делать конкретный класс родительским для всех остальных классов, а затем явно указывать, какие классы должны , а не расширять этот родительский класс?
Но если я не убедил вас не пойти по этому пути, есть параметр Twig, который позволяет вам установить базовый класс шаблона для всех шаблонов:
twig:
base_template_class: Your\Layout\ClassName\Here
Вы можете расширить \Twig_Template
или реализовать \Twig_TemplateInterface
и повеселиться в течение нескольких часов, после чего, я надеюсь, вы будете убеждены, что вообще откажетесь от этой идеи. Удачи. :)