Кэширование страниц
============

Кэширование страниц — это кэширование всего содержимого страницы на стороне сервера. Позже когда эта страница 
будет снова запрошена, сервер вернет её из кэша вместо того что бы генерировать её заново.

Кэширование страниц осуществляется при помощи [[yii\filters\PageCache]] и [фильтра действия](runtime-filtering.md).
Это может быть использовано в классе контроллера как показано ниже:

```php
public function behaviors()
{
    return [
        [
            'class' => 'yii\filters\PageCache',
            'only' => ['index'],
            'duration' => 60,
            'variations' => [
                \Yii::$app->language,
            ],
            'dependency' => [
                'class' => 'yii\caching\DbDependency',
                'sql' => 'SELECT COUNT(*) FROM post',
            ],
        ],
    ];
}
```

Приведенный выше код устанавливает, что кэширования страницы должно использоваться только для `index` действия; контент
этой страницы должен быть закэширован не более чем на 60 секунд и должен будет измениться на текущий язык приложения;
и эта кэшированная страница должна быть признана просроченной, если общее количество постов было изменено.

Как вы можете видеть, кэширование страниц очень похоже на [кэширования фрагмента](caching-fragment.md). Оба этих варианта
поддерживают параметры: `duration` (продолжительность), `dependencies` (зависимости), `variations` (вариации), и `enabled`
(включения). Их главное отличие заключается в том что кэширования страницы реализована как
[фильтр действия](runtime-filtering.md) а кэширования фрагмента как [виджет](structure-widgets.md).

Вы можете использовать [кэширования фрагмента](caching-fragment.md), a также
[динамический контент](caching-fragment.md#dynamic-content) вместе с кэшированием страницы.
