Commit 6c41b364 by Alexander Makarov

Merge pull request #3883 from dementorpasha/patch-1

Create caching-page.md
parents f1a8cc89 c8f4b31c
Кэширование страниц
============
Кэширование страниц — это кэширование всего содержимого страницы на стороне сервера. Позже когда эта страница
будет снова запрошена, сервер вернет её из кэша вместо того что бы генерировать её заново.
Кэширование страниц осуществляется при помощи [[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) вместе с кэшированием страницы.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment