IO v7. Template и работа с ними
Описание
Template - это html файл c расширением .twig, шаблонизируемый через twig, содержащий в себе элементы интерфейса (UI) (ранее view).
Layout view — это html файл c расширением .twig, шаблонизируемый через Twig, который определяет структуру и внешний вид пользовательского интерфейса (UI).

Рендер template в route
public function actionExample()
{
$this->render('@app/example.twig', []);
}
Рендер template в api
public function doAbc($result, $params)
{
global $app;
echo $app->twig->render('@app/example.twig', []);
}
Рендер template в template
{{ include('@app/example.twig') }}
<!-- или -->
{{ include('@app/example.twig', {name: 'Fabien'}) }}
Реализация layout в template
<!DOCTYPE html>
<html>
<head>
{% block head %}
<link rel="stylesheet" href="style.css"/>
<title>{% block title %}{% endblock %} - My Webpage</title>
{% endblock %}
</head>
<body>
<div id="content">{% block content %}{% endblock %}</div>
<div id="footer">
{% block footer %}
© Copyright 2011 by <a href="https://example.com/">you</a>.
{% endblock %}
</div>
</body>
</html>
{% extends "@app/layout.twig" %}
{% block title %}Index{% endblock %}
{% block head %}
{{ parent() }}
<style type="text/css">
.important { color: #336699; }
</style>
{% endblock %}
{% block content %}
<h1>Index</h1>
<p class="important">
Welcome to my awesome homepage.
</p>
{% endblock %}
Функции
render()
Функция отрисовывает указанный template файл, передавая в него параметры из $params.
render(string $path, array $params = []): void
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$path | string | Путь к template файлу. | Да |
$params | array | Массив параметров, передаваемых в указанный template файл. | Нет |
В аргументе $path для того чтобы указать, откуда брать файл шаблона, в начале указывается переменная, начинающаяся со знака @ (например @app). Где app это название модуля, которое указывается в функции module_name() в файле:
project/src/app/Module.php- для проекта.project/src/modules/<modulename>/php/Module.php- для модуля.