Spec-Zone.ru › Yii 2.0

Класс 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

Массив дополнительных данных, хранящихся в записи кэша или null.

beforeAction() общедоступный метод

Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод, чтобы выполнить последнюю подготовку к действию.

public boolean beforeAction ( $action )
$action yii\base\Action

Действие, которое будет выполнено.

return boolean

Следует ли продолжить выполнение действия.

beforeCacheResponse() общедоступный метод (доступно начиная с версии 2.0.11)

Этот метод вызывается непосредственно перед началом кэширования ответа.

Вы можете переопределить этот метод, чтобы отменить кэширование, вернув false или сохранить дополнительные данные в записи кэша, вернув массив вместо true.

public boolean|массив beforeCacheResponse ( )
return boolean|массив

Кэшировать или нет, вернуть массив вместо true для хранения дополнительных данных.

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API