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

Кэширование страницы относится к кэшированию содержимого всей страницы на стороне сервера. Позже, когда та же самая страница снова будет запрошена, ее содержимое будет обслуживаться из кеша, а не восстанавливаться с нуля.

Кэширование страниц поддерживается фильтром действия yii\filters\PageCache. Он может использоваться как следующий в классе контроллера:

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 секунд и должно изменяться в соответствии с текущим языком приложения, и кешированная страница должна быть недействительной, если общее количество сообщений изменено.

Как видите, кэширование страниц очень похоже на кэширование фрагментов. Оба они поддерживают такие параметры, как duration, dependencies, variations, и enabled. Их основное отличие заключается в том, что кеширование страниц реализовано как фильтр действий, а фрагмент кэширует виджет.

Вы можете использовать кэширование фрагментов, а также динамический контент и кеширование страниц.