Spec-Zone.ru › Yii 2.0

Класс yii\filters\HttpCache

Все классы | Свойства | Методы
Наследование yii\filters\HttpCache » yii\base\ActionFilter » yii\base\Behavior » yii\base\Object
Реализует yii\base\Configurable
Доступна с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/filters/HttpCache.php

HttpCache реализует кеширование на стороне клиента, используя заголовки Last-Modified и ETag HTTP.

Это фильтр действия, который можно добавить в контроллер и обрабатывает событие beforeAction.

Чтобы использовать HttpCache, объявите его в методе behaviors() вашего класса контроллера. В следующем примере фильтр будет применен к действию list, а заголовок Last-Modified будет содержать дату последнего обновления таблицы пользователей в базе данных.

public function behaviors()
{
    return [
        [
            'class' => 'yii\filters\HttpCache',
            'only' => ['index'],
            'lastModified' => function ($action, $params) {
                $q = new \yii\db\Query();
                return $q->from('user')->max('updated_at');
            },
//            'etagSeed' => function ($action, $params) {
//                return // generate ETag seed here
//            }
        ],
    ];
}

Публичные свойства

Свойство Тип Описание Определено в
$cacheControlHeader string Значение заголовка Cache-Control HTTP. yii\filters\HttpCache
$enabled boolean Значение, указывающее, должен ли быть включён этот фильтр. yii\filters\HttpCache
$etagSeed callable PHP-обработчик, генерирующий строку ETag. yii\filters\HttpCache
$except array Список идентификаторов действий, к которым этот фильтр не должен применяться. yii\base\ActionFilter
$lastModified callable PHP-обработчик, возвращающий временную метку Unix последнего изменения. yii\filters\HttpCache
$only array Список идентификаторов действий, к которым этот фильтр должен применяться. yii\base\ActionFilter
$owner yii\base\Component|null Владелец этого поведения yii\base\Behavior
$params mixed Дополнительные параметры, которые должны быть переданы обработчикам $lastModified и $etagSeed. yii\filters\HttpCache
$sessionCacheLimiter string Имя ограничителя кеша сессии для установки при [session_cache_limiter()](http://www. yii\filters\HttpCache
$weakEtag boolean Создавать ли слабые ETag. yii\filters\HttpCache

Публичные методы

Метод Описание Определено в
__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
attach() Присоединяет объект поведения к компоненту. yii\base\Behavior
beforeAction() Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод, чтобы выполнить подготовку к действию в последний момент. yii\filters\HttpCache
beforeFilter() yii\base\ActionFilter
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\base\Object

Защищённые методы

Метод Описание Определено в
generateEtag() Генерирует ETag из заданной строки. yii\filters\HttpCache
getActionId() Возвращает идентификатор действия, преобразуя yii\base\Action::$uniqueId в идентификатор, относящийся к модулю. yii\base\ActionFilter
isActive() Возвращает значение, указывающее, активен ли фильтр для данного действия. yii\base\ActionFilter
sendCacheControlHeader() Отправляет заголовок кеширования в клиент. yii\filters\HttpCache
validateCache() Проверяет, содержит ли HTTP-кеш допустимое содержимое. yii\filters\HttpCache

Подробное описание свойств

$cacheControlHeader публичное свойство

Значение заголовка Cache-Control HTTP. Если null, заголовок не будет отправлен.

См. также http://tools.ietf.org/html/rfc2616#section-14.9.

public string $cacheControlHeader = 'public, max-age=3600'

$enabled публичное свойство

Значение, указывающее, должен ли быть включён этот фильтр.

public boolean $enabled = true

$etagSeed публичное свойство

PHP-обработчик, генерирующий строку ETag. Подпись обратного вызова должна быть:

function ($action, $params)

где $action — объект yii\base\Action, который в данный момент обрабатывается этим фильтром; $params принимает значение $params. Обработчик должен вернуть строку, служащую семеном для генерации ETag.

public callable $etagSeed = null

$lastModified общее свойство

PHP-обработчик, возвращающий метку времени последнего изменения в формате временной метки Unix. Подпись обработчика должна быть следующей:

function ($action, $params)

где $action — объект yii\base\Action, обрабатываемый этим фильтром в данный момент; $params принимает значение $params. Обработчик должен возвращать временную метку Unix.

См. также http://tools.ietf.org/html/rfc7232#section-2.2.

public callable $lastModified = null

$params общее свойство

Дополнительные параметры, которые должны быть переданы обработчикам $lastModified и $etagSeed.

public mixed $params = null

$sessionCacheLimiter общее свойство

Имя ограничителя кэша сеанса, которое должно быть установлено при вызове session_cache_limiter(). Значение по умолчанию — пустая строка, что означает отключение автоматической отправки заголовков кэша. Можно задать значение этого свойства public, private, private_no_expire, и nocache. Подробное объяснение этих значений см. в session_cache_limiter().

Если это свойство null, то session_cache_limiter() не будет вызван. В результате PHP отправит заголовки в соответствии с настройкой session.cache_limiter PHP ini.

public string $sessionCacheLimiter = ''

$weakEtag общее свойство (доступно с версии 2.0.8)

Нужно ли генерировать слабые ETag.

Слабые ETag следует использовать, если содержимое должно считаться семантически эквивалентным, но не байтово-равным.

См. также http://tools.ietf.org/html/rfc7232#section-2.3.

public boolean $weakEtag = false

Подробное описание методов

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

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

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

Действие, подлежащее выполнению.

return boolean

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

generateEtag() защищенный метод

Генерирует ETag из заданной строки-семени.

protected string generateEtag ( $seed )
$seed string

Семя для ETag

return string

Сгенерированный ETag

sendCacheControlHeader() защищенный метод

Отправляет заголовок управления кэшем клиенту

См. также $cacheControlHeader.

protected void sendCacheControlHeader ( )

validateCache() защищенный метод

Проверяет, содержит ли кэш HTTP действительное содержимое.

Если и Last-Modified, и ETag равны null, возвращается false.

protected boolean validateCache ( $lastModified, $etag )
$lastModified integer

Вычисленное значение Last-Modified в формате временной метки Unix. Если null, заголовок Last-Modified не будет проверен.

$etag string

Вычисленное значение ETag. Если null, заголовок ETag не будет проверен.

return boolean

Действителен ли кэш HTTP.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-filters-httpcache.html

Spec-Zone.ru

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