Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
40 lines (34 sloc) 2.52 KB

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

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

Кэширование страниц осуществляется при помощи фильтра действия [[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 (включен). Главное отличие заключается в том, что кэширование страницы реализовано в виде фильтра действия, а кэширование фрагмента в виде виджета.

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

You can’t perform that action at this time.