Класс yii\filters\PageCache
| Наследование | yii\filters\PageCache » yii\base\ActionFilter » yii\base\Behavior » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/filters/PageCache.php |
PageCache реализует кэширование целых страниц на стороне сервера.
Это фильтр действий, который может быть добавлен в контроллер и обрабатывает событие beforeAction.
Для использования PageCache, объявите его в методе behaviors() вашего класса контроллера. В следующем примере фильтр будет применен к действию index и кэшировать всю страницу максимум на 60 секунд или до изменения количества записей в таблице post. Он также сохраняет разные версии страницы в зависимости от языка приложения.
public function behaviors()
{
return [
'pageCache' => [
'class' => 'yii\filters\PageCache',
'only' => ['index'],
'duration' => 60,
'dependency' => [
'class' => 'yii\caching\DbDependency',
'sql' => 'SELECT COUNT(*) FROM post',
],
'variations' => [
\Yii::$app->language,
]
],
];
}
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $cache | yii\caching\CacheInterface|массив|строка | Объект кэша или идентификатор компонента кэша приложения. | yii\filters\PageCache |
| $cacheCookies | логическое значение|массив | Логическое значение, указывающее, нужно ли кэшировать все куки, или массив имён куки, указывающий, какие куки можно кэшировать. | yii\filters\PageCache |
| $cacheHeaders | логическое значение|массив | Логическое значение, указывающее, нужно ли кэшировать все HTTP-заголовки, или массив имён HTTP-заголовков (регистронезависимо) указывающий, какие HTTP-заголовки можно кэшировать. | yii\filters\PageCache |
| $dependency | массив|yii\caching\Dependency | Зависимость, от которой зависит кэшируемое содержимое. | yii\filters\PageCache |
| $duration | целое число | Количество секунд, в течение которых данные могут оставаться действительными в кэше. | yii\filters\PageCache |
| $dynamicPlaceholders | массив | Список заглушек для встраивания динамического содержимого. | yii\filters\PageCache |
| $enabled | логическое значение | Включить кэширование страницы. | yii\filters\PageCache |
| $except | массив | Список идентификаторов действий, к которым этот фильтр не должен применяться. | yii\base\ActionFilter |
| $only | массив | Список идентификаторов действий, к которым этот фильтр должен применяться. | yii\base\ActionFilter |
| $owner | yii\base\Component|null | Владелец этого поведения | yii\base\Behavior |
| $variations | массив | Список факторов, которые могут вызвать изменение кэшируемого содержимого. | yii\filters\PageCache |
| $varyByRoute | логическое значение | Выполнять ли различение кэшируемого содержимого в зависимости от маршрута. | yii\filters\PageCache |
| $view | yii\base\View | Компонент представления, используемый для кэширования. | yii\filters\PageCache |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод, который не является методом класса. | yii\base\Object |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| afterAction() | Этот метод вызывается сразу после выполнения действия. | yii\base\ActionFilter |
| afterFilter() | yii\base\ActionFilter | |
| afterRestoreResponse() | Этот метод вызывается сразу после завершения восстановления ответа (но перед отправкой ответа). | yii\filters\PageCache |
| attach() | Присоединяет объект поведения к компоненту. | yii\base\Behavior |
| beforeAction() | Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод, чтобы выполнить последнюю подготовку к действию. | yii\filters\PageCache |
| beforeCacheResponse() | Этот метод вызывается непосредственно перед началом кэширования ответа. | yii\filters\PageCache |
| beforeFilter() | yii\base\ActionFilter | |
| cacheResponse() | Кэширует свойства ответа. | yii\filters\PageCache |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| detach() | Отсоединяет объект поведения от компонента. | yii\base\Behavior |
| events() | Объявляет обработчики событий для событий $owner. | yii\base\Behavior |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\filters\PageCache |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| calculateCacheKey() | yii\filters\PageCache | |
| getActionId() | Возвращает идентификатор действия, преобразуя yii\base\Action::$uniqueId в идентификатор, относящийся к модулю. | yii\base\ActionFilter |
| isActive() | Возвращает значение, указывающее, активен ли фильтр для данного действия. | yii\base\ActionFilter |
| restoreResponse() | Восстанавливает свойства ответа из предоставленных данных. | yii\filters\PageCache |
| updateDynamicContent() | Заменяет плейсхолдеры в содержимом результатами вычисленных динамических выражений. | yii\filters\PageCache |
Подробное описание свойств
$cache общедоступное свойство
Объект кэша или идентификатор компонента приложения, представляющего собой объект кэша. После создания объекта PageCache, если вы хотите изменить это свойство, вы должны присвоить ему только объект кэша. Начиная с версии 2.0.2, это также может быть массив конфигурации для создания объекта.
public yii\caching\CacheInterface|array|string $cache = 'cache'
$cacheCookies общедоступное свойство (доступно начиная с версии 2.0.4)
Логическое значение, указывающее, следует ли кэшировать все куки, или массив имён куки, указывающий, какие куки можно кэшировать. Будьте очень осторожны при кэшировании куки, так как это может привести к утечке конфиденциальных или личных данных, хранящихся в куки, для нежелательных пользователей.
public boolean|array $cacheCookies = false
$cacheHeaders общедоступное свойство (доступно начиная с версии 2.0.4)
Логическое значение, указывающее, следует ли кэшировать все HTTP-заголовки, или массив имён HTTP-заголовков (регистронезависимый) указывающий, какие HTTP-заголовки можно кэшировать. Обратите внимание, если ваши HTTP-заголовки содержат конфиденциальную информацию, вы должны указать, какие заголовки можно кэшировать.
public boolean|array $cacheHeaders = true
$dependency общедоступное свойство
Зависимость, от которой зависит кэшируемое содержимое. Это может быть либо объект yii\caching\Dependency, либо конфигурационный массив для создания объекта зависимости. Например,
[
'class' => 'yii\caching\DbDependency',
'sql' => 'SELECT MAX(updated_at) FROM post',
]
сделает кэш вывода зависимым от времени последнего изменения всех записей. Если время изменения любой записи будет изменено, кэшируемое содержимое будет проигнорировано.
Если $cacheCookies или $cacheHeaders включены, то yii\caching\Dependency::$reusable также должен быть включён для экономии ресурсов. Это связано с тем, что куки и заголовки в настоящее время хранятся отдельно от фактического содержимого страницы, что приводит к двойному вычислению зависимости.
public array|yii\caching\Dependency $dependency = null
$duration общедоступное свойство
Количество секунд, в течение которых данные могут оставаться действительными в кэше. Используйте 0 для указания того, что кэшируемые данные никогда не истекают.
public integer $duration = 60
$dynamicPlaceholders общедоступное свойство (доступно начиная с версии 2.0.11)
Список плейсхолдеров для встраивания динамического содержимого. Это свойство используется внутренне для реализации функции кэширования содержимого. Не изменяйте его.
public array $dynamicPlaceholders = null
$enabled общедоступное свойство
Включить ли кэш страницы. Вы можете использовать это свойство для включения и выключения кэша страницы в зависимости от определённых настроек (например, включить кэш страницы только для запросов GET).
public boolean $enabled = true
$variations общедоступное свойство
Список факторов, которые могут привести к изменению кэшируемого содержимого. Каждый фактор — это строка, представляющая изменение (например, язык, параметр GET). Следующая настройка изменения приведет к кэшированию содержимого в разных версиях в зависимости от текущего языка приложения:
[
Yii::$app->language,
]
public array $variations = null
$varyByRoute общедоступное свойство
Следует ли различать кэшируемое содержимое в зависимости от маршрута. Маршрут состоит из идентификатора контроллера и идентификатора действия, запрошенных. По умолчанию true.
public boolean $varyByRoute = true
$view общедоступное свойство
Компонент представления для использования при кэшировании. Если не указан, будет использоваться компонент представления по умолчанию для приложения yii\web\Application::$view.
public yii\base\View $view = null
Подробное описание методов
afterRestoreResponse() общедоступный метод (доступно начиная с версии 2.0.11)
Этот метод вызывается сразу после завершения восстановления ответа (но перед отправкой ответа).
Вы можете переопределить этот метод, чтобы выполнить подготовку перед отправкой ответа.
| public void afterRestoreResponse ( $data ) | ||
|---|---|---|
| $data | массив|null |
Массив дополнительных данных, хранящихся в записи кэша или |
beforeAction() общедоступный метод
Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод, чтобы выполнить последнюю подготовку к действию.
| public boolean beforeAction ( $action ) | ||
|---|---|---|
| $action | yii\base\Action |
Действие, которое будет выполнено. |
| return | boolean |
Следует ли продолжить выполнение действия. |
beforeCacheResponse() общедоступный метод (доступно начиная с версии 2.0.11)
Этот метод вызывается непосредственно перед началом кэширования ответа.
Вы можете переопределить этот метод, чтобы отменить кэширование, вернув false или сохранить дополнительные данные в записи кэша, вернув массив вместо true.
| public boolean|массив beforeCacheResponse ( ) | ||
|---|---|---|
| return | boolean|массив |
Кэшировать или нет, вернуть массив вместо |
cacheResponse() общедоступный метод (доступно начиная с версии 2.0.3)
Кэширует свойства ответа.
| public void cacheResponse ( ) |
|---|
calculateCacheKey() защищённый метод (доступно начиная с версии 2.0.3)
| protected массив calculateCacheKey ( ) | ||
|---|---|---|
| return | массив |
Ключ, используемый для кэширования свойств ответа. |
init() общедоступный метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта с заданной конфигурацией.
| public void init ( ) |
|---|
restoreResponse() защищённый метод (доступно начиная с версии 2.0.3)
Восстанавливает свойства ответа из предоставленных данных.
| protected void restoreResponse ( $response, $data ) | ||
|---|---|---|
| $response | yii\web\Response |
Ответ, который будет восстановлен. |
| $data | массив |
Данные свойства ответа. |
updateDynamicContent() защищённый метод (доступно начиная с версии 2.0.11)
Заменяет плейсхолдеры в содержимом результатами вычисленных динамических выражений.
| protected строка updateDynamicContent ( $content, $placeholders ) | ||
|---|---|---|
| $content | строка |
Содержимое для обработки. |
| $placeholders | массив |
Плейсхолдеры и их значения. |
| return | строка |
Окончательное содержимое. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-filters-pagecache.html