Class yii\behaviors\CacheableWidgetBehavior

继承yii\behaviors\CacheableWidgetBehavior » yii\base\Behavior » yii\base\BaseObject
实现yii\base\Configurable
可用自版本2.0.14
源代码 https://github.com/yiisoft/yii2/blob/master/framework/behaviors/CacheableWidgetBehavior.php

可缓存小部件行为(Cacheable widget behavior)根据指定的持续时间和依赖性自动缓存小部件内容.

如果应用程序(application)配置了cache组件, 则可以在没有任何配置的情况下使用该行为.

默认情况下, 窗口小部件将被缓存一分钟.

以下示例将无限期的缓存帖子(posts)小部件, 直到任何一个帖子(post)被修改为止.

use yii\behaviors\CacheableWidgetBehavior;

public function behaviors()
{
    return [
        [
            'class' => CacheableWidgetBehavior::className(),
            'cacheDuration' => 0,
            'cacheDependency' => [
                'class' => 'yii\caching\DbDependency',
                'sql' => 'SELECT MAX(updated_at) FROM posts',
            ],
        ],
    ];
}

公共属性

隐藏继承的属性

属性类型描述定义在
$cache yii\caching\CacheInterface|string|array 缓存对象或缓存组件ID或用于创建缓存对象的配置数组. yii\behaviors\CacheableWidgetBehavior
$cacheDependency yii\caching\Dependency|array|null 缓存依赖或用于创建缓存依赖的配置数组, 或`null'表示没有缓存依赖的. yii\behaviors\CacheableWidgetBehavior
$cacheDuration integer 缓存持续时间(秒). yii\behaviors\CacheableWidgetBehavior
$cacheEnabled boolean 是否启用缓存. yii\behaviors\CacheableWidgetBehavior
$cacheKeyVariations string[]|string 字符串数组或将会导致正在缓存的内容变化的单个字符串(eg. yii\behaviors\CacheableWidgetBehavior
$owner yii\base\Component|null 该行为的所有者. yii\base\Behavior

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的已命名方法. yii\base\BaseObject
__construct() 构造函数. yii\base\BaseObject
__get() 返回对象属性的值. yii\base\BaseObject
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\BaseObject
__set() 设置对象属性的值. yii\base\BaseObject
__unset() 将对象属性设置为null. yii\base\BaseObject
afterRun() 输出窗口小部件内容并结束片段缓存. yii\behaviors\CacheableWidgetBehavior
attach() 将行为对象附加到组件. yii\behaviors\CacheableWidgetBehavior
beforeRun() 开始片段缓存. 如果可以从缓存中检索其内容, 则阻止执行所有者窗口小部件. yii\behaviors\CacheableWidgetBehavior
canGetProperty() 返回一个值, 指示属性是否可读. yii\base\BaseObject
canSetProperty() 返回一个值, 指示属性是否可写. yii\base\BaseObject
className() 返回此类的完全限定名称. yii\base\BaseObject
detach() 从组件中分离行为对象. yii\base\Behavior
events() 声明 所有者 事件的事件处理程序. yii\base\Behavior
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化对象. yii\base\BaseObject

属性详情

$cache public 属性

缓存对象或缓存组件ID或用于创建缓存对象的配置数组.

默认为cache应用程序组件.

$cacheDependency public 属性

缓存依赖或用于创建缓存依赖的配置数组, 或`null'表示没有缓存依赖的.

例如,

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

会使小部件缓存依赖于所有帖子(post)的最后修改时间.

如果任何一个帖子(post)的修改时间发生更改, 则缓存的内容将失效.

$cacheDuration public 属性

缓存持续时间(秒).

设置为0表示缓存的数据永不过期.

默认为60秒或1分钟.

public integer $cacheDuration 60
$cacheEnabled public 属性

是否启用缓存. 允许根据特定条件打开和关闭窗口小部件缓存.

以下配置将在传递特殊的 GET 参数时禁用缓存:

empty(Yii::$app->request->get('disable-caching'))
public boolean $cacheEnabled true
$cacheKeyVariations public 属性

字符串数组或将会导致正在缓存的内容变化的单个字符串(eg. 应用程序语言, GET 参数).

以下变体设置将导致内容根据当前应用程序语言以不同版本缓存:

[
    Yii::$app->language,
]

方法详情

afterRun() public 方法

输出窗口小部件内容并结束片段缓存.

public void afterRun ( $event )
$event yii\base\WidgetEvent

Widget::EVENT_AFTER_RUN事件.

attach() public 方法

将行为对象附加到组件.

默认实现将设置 所有者 属性并附加在 事件 中声明的事件处理程序. 如果重写此方法, 请确保调用父实现.

public void attach ( $owner )
$owner yii\base\Component

要将此行为附加到的组件..

beforeRun() public 方法

开始片段缓存. 如果可以从缓存中检索其内容, 则阻止执行所有者窗口小部件.

public void beforeRun ( $event )
$event yii\base\WidgetEvent

Widget::EVENT_BEFORE_RUN事件.