# Представления и шаблоны

Elang использует Twig для формирования HTML на сервере. Интерфейс приложения может оставаться на обычных HTML, CSS и JavaScript.

## Отображение представления

```php
use Elang\View\View;

$router->get('/', fn (View $view) =>
    $view->render('home', ['title' => 'My application'])
);
```

Этот код загружает `resources/views/home.twig`. Передайте необязательный третий аргумент, чтобы задать HTTP-статус.

## Экранирование вывода

```twig
<h1>{{ title }}</h1>
```

Автоматическое экранирование HTML и строгие проверки переменных включены. Используйте `|raw` только для доверенного, очищенного HTML. Не помечайте пользовательское содержимое как необработанное.

## Макеты

```twig
{% extends "base.twig" %}
{% block content %}
  <h1>{{ title }}</h1>
{% endblock %}
```

Шаблоны Twig компилируются в доступный для записи кеш хранилища. Файлы CSS и JavaScript размещаются в `public/assets/`. Внешние файлы также соответствуют политике Content Security Policy по умолчанию, которая запрещает встроенные скрипты и стили.

## Ссылки на именованные маршруты

```twig
<a href="{{ route('posts.show', {id: 42}) }}">Read post</a>
```

О наследовании, включениях, фильтрах и синтаксисе шаблонов читайте в [документации Twig](https://twig.symfony.com/doc/3.x/).
