没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\filters\PageCache

继承yii\filters\PageCache » yii\base\ActionFilter » yii\base\Behavior » yii\base\BaseObject
实现yii\base\Configurable, yii\base\DynamicContentAwareInterface
使用 Traitsyii\base\DynamicContentAwareTrait
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/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|array|string 缓存对象或缓存对象的应用程序组件 ID 。 创建 PageCache 对象后,如果要更改此属性, 您应该只用缓存对象来分配它。 从版本 2. yii\filters\PageCache
$cacheCookies boolean|array 指示是否缓存所有 cookies 或数组的布尔值 cookies 名称 该名称指示可缓存哪些 cookies。要非常小心地缓存 cookies,因为它 可能泄漏存储在 cookies 中的敏感或私有数据给不需要的用户。 yii\filters\PageCache
$cacheHeaders boolean|array 指示是否缓存所有 HTTP headers 的布尔值,或者一个 HTTP header 名称(大小写不敏感)数组指示可以缓存哪些 HTTP headers 注意:如果您的 HTTP headers 包含敏感信息,你应该列出白名单哪些 headers 可以缓存。 yii\filters\PageCache
$dependency array|yii\caching\Dependency 缓存内容所依赖的依赖项。 这可以是一个 yii\caching\Dependency 对象也可以是用于创建依赖项对象的配置数组。 例如, `php [ 'class' => 'yii\caching\DbDependency', 'sql' => 'SELECT MAX(updated_at) FROM post', ] ` 将使输出缓存取决于所有 POST 的上次修改时间。 如果任何帖子的修改时间发生更改,则缓存的内容将无效。 如果启用 $cacheCookies 或者 $cacheHeaders,然后应该启用 yii\caching\Dependency::$reusable 节省性能。 这是因为 cookies 和 headers 当前是与实际页面内容分开存储的,从而导致对依赖项进行两次计算。 yii\filters\PageCache
$duration integer 数据在缓存中保持有效的秒数。 使用 0 指示缓存的数据永远不会过期。 yii\filters\PageCache
$dynamicPlaceholders array A list of placeholders. yii\base\DynamicContentAwareTrait
$enabled boolean 是否启用页面缓存。 您可以使用此属性根据 特定设置打开和关闭页缓存(例如仅对 GET 请求启用页缓存)。 yii\filters\PageCache
$except array List of action IDs that this filter should not apply to. yii\base\ActionFilter
$only array List of action IDs that this filter should apply to. yii\base\ActionFilter
$owner yii\base\Component|null The owner of this behavior yii\base\Behavior
$variations string[]|string 将导致缓存内容更改的因素列表。 每个因素都是表示变体的字符串(例如语言,一个 GET 参数)。 以下更改设置将根据 当前应用程序语言将内容缓存到不同版本中: `php [ Yii::$app->language, ] ` yii\filters\PageCache
$varyByRoute boolean 是否应根据路由区分要缓存的内容。 路由请求的控制器 ID 和操作 ID 组成。默认值为true yii\filters\PageCache
$view yii\base\View 用于缓存的视图组件。如果未设置,默认应用程序 yii\web\Application::$view 视图组件。 yii\filters\PageCache

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\BaseObject
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of an object property. yii\base\BaseObject
__isset() Checks if a property is set, i.e. defined and not null. yii\base\BaseObject
__set() Sets value of an object property. yii\base\BaseObject
__unset() Sets an object property to null. yii\base\BaseObject
addDynamicPlaceholder() Adds a placeholder for dynamic content. yii\base\DynamicContentAwareTrait
afterAction() 执行动作后立即调用此方法。 您可以覆盖此方法以对操作执行一些后处理。 yii\base\ActionFilter
afterFilter() yii\base\ActionFilter
afterRestoreResponse() 此方法是在响应恢复完成后(但在响应发送之前)调用的。 您可以重写此方法以便在发送响应之前进行最后一刻的准备。 yii\filters\PageCache
attach() Attaches the behavior object to the component. yii\base\Behavior
beforeAction() 在执行操作之前调用此方法(在所有可能的筛选器之后)。 您可以重写此方法来完成该操作的最后一刻做准备。 yii\filters\PageCache
beforeCacheResponse() 在启动响应缓存之前调用此方法。 您可以通过返回 false 来重写此方法以取消缓存也可以通过返回数组而 不是 true 来将其他数据存储在缓存条目中。 yii\filters\PageCache
beforeFilter() yii\base\ActionFilter
cacheResponse() 缓存响应属性。 yii\filters\PageCache
canGetProperty() Returns a value indicating whether a property can be read. yii\base\BaseObject
canSetProperty() Returns a value indicating whether a property can be set. yii\base\BaseObject
className() Returns the fully qualified name of this class. yii\base\BaseObject
detach() Detaches the behavior object from the component. yii\base\Behavior
events() Declares event handlers for the $owner's events. yii\base\Behavior
getDynamicPlaceholders() Returns a list of placeholders for dynamic content. This method is used internally to implement the content caching feature. yii\base\DynamicContentAwareTrait
getView() yii\filters\PageCache
hasMethod() Returns a value indicating whether a method is defined. yii\base\BaseObject
hasProperty() Returns a value indicating whether a property is defined. yii\base\BaseObject
init() Initializes the object. yii\filters\PageCache
setDynamicPlaceholders() Sets a list of placeholders for dynamic content. This method is used internally to implement the content caching feature. yii\base\DynamicContentAwareTrait

受保护的方法

隐藏继承的方法

方法描述被定义在
calculateCacheKey() yii\filters\PageCache
getActionId() 通过将 yii\base\Action::$uniqueId 转换为相对于模块的 ID 来返回动作 ID。 yii\base\ActionFilter
isActive() 返回一个值,该值指示过滤器对于给定操作是否处于活动状态。 yii\base\ActionFilter
restoreResponse() 从给定数据恢复响应属性。 yii\filters\PageCache
updateDynamicContent() Replaces placeholders in $content with results of evaluated dynamic statements. yii\base\DynamicContentAwareTrait

常量

隐藏继承的常量

常量描述被定义在
PAGE_CACHE_VERSION 1 页缓存版本,用于在缓存的数据格式更改时 检测缓存值中的不兼容性。 yii\filters\PageCache

属性详情

$cache 公共 属性

缓存对象或缓存对象的应用程序组件 ID 。 创建 PageCache 对象后,如果要更改此属性, 您应该只用缓存对象来分配它。 从版本 2.0.2 开始,这也可以是用于创建对象的配置数组。

$cacheCookies 公共 属性 (自版本 2.0.4 可用)

指示是否缓存所有 cookies 或数组的布尔值 cookies 名称 该名称指示可缓存哪些 cookies。要非常小心地缓存 cookies,因为它 可能泄漏存储在 cookies 中的敏感或私有数据给不需要的用户。

public boolean|array $cacheCookies false
$cacheHeaders 公共 属性 (自版本 2.0.4 可用)

指示是否缓存所有 HTTP headers 的布尔值,或者一个 HTTP header 名称(大小写不敏感)数组指示可以缓存哪些 HTTP headers 注意:如果您的 HTTP headers 包含敏感信息,你应该列出白名单哪些 headers 可以缓存。

public boolean|array $cacheHeaders true
$dependency 公共 属性

缓存内容所依赖的依赖项。 这可以是一个 yii\caching\Dependency 对象也可以是用于创建依赖项对象的配置数组。 例如,

[
    'class' => 'yii\caching\DbDependency',
    'sql' => 'SELECT MAX(updated_at) FROM post',
]

将使输出缓存取决于所有 POST 的上次修改时间。 如果任何帖子的修改时间发生更改,则缓存的内容将无效。

如果启用 $cacheCookies 或者 $cacheHeaders,然后应该启用 yii\caching\Dependency::$reusable 节省性能。 这是因为 cookies 和 headers 当前是与实际页面内容分开存储的,从而导致对依赖项进行两次计算。

$duration 公共 属性

数据在缓存中保持有效的秒数。 使用 0 指示缓存的数据永远不会过期。

public integer $duration 60
$enabled 公共 属性

是否启用页面缓存。 您可以使用此属性根据 特定设置打开和关闭页缓存(例如仅对 GET 请求启用页缓存)。

public boolean $enabled true
$variations 公共 属性

将导致缓存内容更改的因素列表。 每个因素都是表示变体的字符串(例如语言,一个 GET 参数)。 以下更改设置将根据 当前应用程序语言将内容缓存到不同版本中:

[
    Yii::$app->language,
]
public string[]|string $variations null
$varyByRoute 公共 属性

是否应根据路由区分要缓存的内容。 路由请求的控制器 ID 和操作 ID 组成。默认值为true

public boolean $varyByRoute true
$view 公共 只读 属性

用于缓存的视图组件。如果未设置,默认应用程序 yii\web\Application::$view 视图组件。

public void getView ( )

方法详情

afterRestoreResponse() 公共 方法 (自版本 2.0.11 可用)

此方法是在响应恢复完成后(但在响应发送之前)调用的。 您可以重写此方法以便在发送响应之前进行最后一刻的准备。

public void afterRestoreResponse($data)
$data array|null

存储在缓存条目或 null 中的附加数据的数组。

beforeAction() 公共 方法

在执行操作之前调用此方法(在所有可能的筛选器之后)。 您可以重写此方法来完成该操作的最后一刻做准备。

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

要执行的行动。

return boolean

是否应继续执行这项行动。

beforeCacheResponse() 公共 方法 (自版本 2.0.11 可用)

在启动响应缓存之前调用此方法。 您可以通过返回 false 来重写此方法以取消缓存也可以通过返回数组而 不是 true 来将其他数据存储在缓存条目中。

public boolean|array beforeCacheResponse()
return boolean|array

无论是否缓存,返回一个数组而不是 true 来存储其他数据。

cacheResponse() 公共 方法 (自版本 2.0.3 可用)

缓存响应属性。

public void cacheResponse()
calculateCacheKey() 受保护 方法 (自版本 2.0.3 可用)

protected \yii\filters\数组用于缓存响应属性的键。 calculateCacheKey()
getView() 公共 方法

public void getView()
init() 公共 方法

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

public void init()
restoreResponse() 受保护 方法 (自版本 2.0.3 可用)

从给定数据恢复响应属性。

protected void restoreResponse($response, $data)
$response yii\web\Response

需要恢复的响应。

$data array

响应属性数据。