Skip to content

Latest commit

 

History

History
40 lines (33 loc) · 1.56 KB

caching-page.md

File metadata and controls

40 lines (33 loc) · 1.56 KB

Page Caching

Page caching refers to caching the content of a whole page on the server-side. Later when the same page is requested again, its content will be served from the cache instead of regenerating it from scratch.

Page caching is supported by [[yii\filters\PageCache]], an action filter. It can be used like the following in a controller class:

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',
            ],
        ],
    ];
}

The above code states that page caching should be used only for the index action. The page content should be cached for at most 60 seconds and should be variated by the current application language and the cached page should be invalidated if the total number of posts is changed.

As you can see, page caching is very similar to fragment caching. They both support options such as duration, dependencies, variations, and enabled. Their main difference is that page caching is implemented as an action filter while fragment caching a widget.

You can use fragment caching as well as dynamic content together with page caching.