{#- /views/header.twig -#}
<div>
<div class="left">
{% include "/views/header/left" %}
</div>
<div class="right">
{% include "/views/header/right" %}
</div>
</div>
{#- /views/header/left.twig -#}
<ul>
<li><a href="#!">Link</a></li>
<li><a href="#!">Link 2</a></li>
</ul>
{#- /views/header/right.twig -#}
<p class="text-left">Right</p>
{#- /views/base.twig -#}
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>{% block title %}Hello!{% endblock %}</title>
</head>
<body>
<div class="row">
<div class="col-md-2">
{% include "/views/header.twig" %}
</div>
<div class="col-md-10">
{% block content %}{% endblock %}
</div>
</div>
<div class="row">
<div class="col-md-12">
{% block footer %}{% endblock %}
</div>
</div>
</body>
</html>
{#- /views/ajax.twig -#}
{% block content %}{% endblock %}
{#- /views/pages/base.twig -#}
{% extends "/views/base.twig" %}
{% block title %}
Welcome.
{% endblock %}
{% block content %}{% endblock %}
{% block footer %} (c) 2015 {% endblock %}
{#- /views/pages/blog/index.twig -#}
{% extends app.isAjax() ? "/views/pages/ajax.twig" : "/views/pages/base.twig" %}
{% block title %}
{{ parent() }} This best blog.
{% endblock %}
{% block content %}
<h1>Header</h1>
<p>Content text</p>
{% endblock %}
{% block footer %}{#- remove parent -#}{% endblock %}
Что тут происходит.
При рендере /views/pages/blog/index.twig
шаблонизатор будет подниматься вверх.
В нём переопределяем footer, дополняем title.
title = "??? This best blog."
footer = ""
content = "<h1>...."
index (проверка переменной) +-> ajax.twig -> вывод
|
| or
|
+-> page/base.twig +
|
+----------------------------------------+
| Тут по пути уже к базовому шаблону переопределяем footer и title
| title = "Welcome. This best blog."
| footer = ""
| content = "<h1>...."
|
v А тут уже include
base.twig - - - > header.twig - + - - > left.twig
| + - - > right.twig
v
вывод
+---------------------------------------+
| +-----------------------------------+ |
| | | |
| | +--------------+ +--------------+ | |
| | | left | | right | | | header
| | +--------------+ +--------------+ | |
| | | |
| +-----------------------------------+ |
| | | |
| | +----------------------------+ | | base | ajax
| | | Welcome. This best blog. | | | title
| | +----------------------------+ | |
| | | |
| | +----------------------------+ | |
| | | Header | | | content
| | | Content text | | |
| | +----------------------------+ | |
| | | |
| +-----------------------------------+ |
+---------------------------------------+
Помимо простой иерархии блоков, в шаблонизаторе очень много интересного.
Только и успевай документацию читать...
ЗЫ. По умолчанию тут почему-то html подсветка. (бред)