twig/php中布局的多重扩展

twig/php中布局的多重扩展,php,twig,Php,Twig,我有一个问题,如何解决以下问题与细枝模板 我有一个系统,在这个系统中,两个部件想在不认识对方的情况下更改布局中的块。我的模板的想法是 main.twig <html><body> {% block a %}{% endblock %} {% block b %}{% endblock %} </body></html> replacea.twig {% extends "main.twig" %} {% block a %}hello{% end

我有一个问题,如何解决以下问题与细枝模板

我有一个系统,在这个系统中,两个部件想在不认识对方的情况下更改布局中的块。我的模板的想法是

main.twig
<html><body>
{% block a %}{% endblock %}
{% block b %}{% endblock %}
</body></html>

replacea.twig
{% extends "main.twig" %}
{% block a %}hello{% endblock %}

replaceb.twig
{% extends "main.twig" %}
{% block b %}world{% endblock %}
main.twig
{%block a%}{%endblock%}
{%block b%}{%endblock%}
小枝
{%extends“main.twig”%}
{%block a%}您好{%endblock%}
小枝
{%extends“main.twig”%}
{%block b%}世界{%endblock%}
我的问题是,我不知道如何实现这一点,因为我调用replacea和replaceb的地方只共享一个“viewengine”,所以我可以收集所有渲染调用并批量处理它们

我解决这个问题的第一个想法是扩展一个变量,比如说“layout”,但是当我调用render layout时,所有模板中的布局都将被替换为相同的,而不是replaceb中的“replacea.twig”和replacea中的“main.twig”

希望你能理解我的问题。

你需要使用“使用”-双关语不是有意的!:-)

main.twig
{%block a%}{%endblock%}
{%block b%}{%endblock%}
小枝
{%block a%}您好{%endblock%}
小枝
{%extends“main.twig”%}
{%使用“replacea.html”%}
{%block b%}世界{%endblock%}
查看文档:

您需要使用“使用”-双关语不是有意的!:-)

main.twig
{%block a%}{%endblock%}
{%block b%}{%endblock%}
小枝
{%block a%}您好{%endblock%}
小枝
{%extends“main.twig”%}
{%使用“replacea.html”%}
{%block b%}世界{%endblock%}
查看文档:

这需要replaceb了解replacea,但我这样做是为了使用动态变量,而不是“replacea.html”,并且知道它是有效的!-谢谢嗯,这需要replaceb了解replacea,但我这样做是为了使用动态变量而不是“replacea.html”,并且知道它是有效的谢谢
main.twig
<html><body>
{% block a %}{% endblock %}
{% block b %}{% endblock %}
</body></html>

replacea.twig
{% block a %}hello{% endblock %}

replaceb.twig
{% extends "main.twig" %}
{% use "replacea.html" %}
{% block b %}world{% endblock %}