Class yii\widgets\FragmentCache

继承yii\widgets\FragmentCache » yii\base\Widget » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable, yii\base\DynamicContentAwareInterface, yii\base\ViewContextInterface
Uses Traitsyii\base\DynamicContentAwareTrait
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/widgets/FragmentCache.php

yii\base\View 使用 FragmentCache 提供页面片段的缓存.

公共属性

隐藏继承的属性

属性类型描述定义在
$autoIdPrefix string 自动生成的小部件 ID 的前缀. yii\base\Widget
$behaviors yii\base\Behavior[] 附加到此组件的行为列表. 该属性是只读的. yii\base\Component
$cache yii\caching\CacheInterface|array|string 缓存对象或缓存对象的应用程序组件 ID. yii\widgets\FragmentCache
$cachedContent string|false 缓存的内容. 如果在缓存中找不到有效的内容, 则返回false. 该属性是只读的. yii\widgets\FragmentCache
$counter integer 用于为小部件生成 $id 的计数器. yii\base\Widget
$dependency array|yii\caching\Dependency 缓存内容所依赖的依赖关系. yii\widgets\FragmentCache
$duration integer 数据在缓存中保持有效的秒数. yii\widgets\FragmentCache
$dynamicPlaceholders array 占位符列表. yii\base\DynamicContentAwareTrait
$enabled boolean 是否启用分段缓存. yii\widgets\FragmentCache
$id string|null 小部件的 ID. Note: 此属性的类型在 getter 和 setter 中不同. 有关详细信息, 请参阅 getId()setId(). yii\base\Widget
$stack yii\base\Widget[] 当前正在渲染的小部件(未结束). yii\base\Widget
$variations string[]|string 将导致缓存内容变化的因素列表. yii\widgets\FragmentCache
$view yii\web\View 可用于渲染视图或视图文件的视图对象. Note: 此属性的类型在 getter 和 setter 中不同. 有关详细信息, 请参阅 getView()setView(). yii\base\Widget
$viewPath string 包含此小部件的视图文件的目录. 该属性是只读的. yii\base\Widget

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的指定的方法. yii\base\Component
__clone() 在通过克隆现有对象创建对象之后调用此方法. yii\base\Component
__construct() 构造函数. yii\base\BaseObject
__get() 返回组件属性的值. yii\base\Component
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\Component
__set() 设置组件属性的值. yii\base\Component
__unset() 将组件属性设置为null. yii\base\Component
addDynamicPlaceholder() 为动态内容添加一个占位符. yii\base\DynamicContentAwareTrait
afterRun() 在执行小部件后立即调用该方法. yii\base\Widget
attachBehavior() 将行为附加到此组件. yii\base\Component
attachBehaviors() 将行为列表附加到组件. yii\base\Component
beforeRun() 在执行小部件之前立即调用该方法. yii\base\Widget
begin() 开始一个小部件. yii\base\Widget
behaviors() 返回此组件应该具有的行为列表. yii\base\Component
canGetProperty() 返回一个值, 指示属性是否可读取. yii\base\Component
canSetProperty() 返回一个值, 指示属性是否可设置. yii\base\Component
className() 返回此类的完全限定名称. yii\base\BaseObject
detachBehavior() 从组件中分离一个行为. yii\base\Component
detachBehaviors() 分离组件中的所有行为. yii\base\Component
end() 结束小部件. yii\base\Widget
ensureBehaviors() 确保在 behaviors() 中声明的行为已附加到此组件. yii\base\Component
getBehavior() 返回指定的行为对象. yii\base\Component
getBehaviors() 返回附加到此组件的所有行为. yii\base\Component
getCachedContent() 如果可用, 则返回缓存的内容. yii\widgets\FragmentCache
getDynamicPlaceholders() 返回动态内容的占位符列表. yii\base\DynamicContentAwareTrait
getId() 返回小部件的 ID. yii\base\Widget
getViewPath() 返回包含此小部件的视图文件的目录. yii\base\Widget
hasEventHandlers() 返回一个值, 指示是否有任何处理程序附加到指定的事件. yii\base\Component
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\Component
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\Component
init() 初始化 FragmentCache 对象. yii\widgets\FragmentCache
off() 从该组件分离现有的事件处理程序. yii\base\Component
on() 将事件处理程序附加到事件. yii\base\Component
render() 渲染视图. yii\base\Widget
renderFile() 渲染视图文件. yii\base\Widget
run() 标记要缓存的内容的结尾. yii\widgets\FragmentCache
setDynamicPlaceholders() 设置动态内容的占位符列表. yii\base\DynamicContentAwareTrait
setId() 设置小部件的 ID. yii\base\Widget
setView() 设置此小部件要使用的视图对象. yii\base\Widget
trigger() 触发事件. yii\base\Component
widget() 创建一个小部件实例并运行它. yii\base\Widget

受保护的方法

隐藏继承的方法

方法描述定义在
calculateKey() 生成用于将内容存储在缓存中唯一密钥. yii\widgets\FragmentCache
getView() 返回可用于使用动态内容渲染视图或视图文件的视图对象. yii\base\DynamicContentAwareTrait
updateDynamicContent() 用评估后的动态语句的结果替换$content中的占位符. yii\base\DynamicContentAwareTrait

事件

隐藏继承的事件

事件类型描述定义在
EVENT_AFTER_RUN yii\base\WidgetEvent 在执行小部件之后立即触发的事件. (available since version 2.0.11) yii\base\Widget
EVENT_BEFORE_RUN yii\base\WidgetEvent 在执行小部件之前触发的事件. (available since version 2.0.11) yii\base\Widget
EVENT_INIT yii\base\Event 当通过 init() 初始化小部件时触发的事件. (available since version 2.0.11) yii\base\Widget

属性详情

$cache public 属性

缓存对象或缓存对象的应用程序组件 ID. 在创建 FragmentCache 对象后, 如果要更改此属性, 则应仅为其分配一个缓存对象. 从版本 2.0.2 开始, 这也可以是用于创建对象的配置数组.

$cachedContent public 属性

缓存的内容. 如果在缓存中找不到有效的内容, 则返回false. 该属性是只读的.

public string|false $cachedContent null
$dependency public 属性

缓存内容所依赖的依赖关系. 它可以是 yii\caching\Dependency 对象, 也可以是用于创建依赖项对象的配置数组. 例如,

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

会使输出缓存取决于所有帖子(post)的最后修改时间. 如果任何一个帖子(post)修改时间发生变化, 则缓存的内容将失效.

$duration public 属性

数据在缓存中保持有效的秒数. 使用0表示缓存的数据将永不过期.

public integer $duration 60
$enabled public 属性

是否启用分段缓存. 你可以使用此属性根据特定设置打开和关闭分段缓存(eg, 仅对 GET 请求启用分段缓存).

public boolean $enabled true
$variations public 属性

将导致缓存内容变化的因素列表.

每个因子是表示变体的字符串(eg. 语言, GET 参数).

以下变化设置将根据当前应用程序语言以不同的版本进行缓存:

[
    Yii::$app->language,
]
public string[]|string $variations null

方法详情

calculateKey() protected 方法

生成用于将内容存储在缓存中唯一密钥.

生成的密钥取决于 $id$variations.

protected mixed calculateKey ( )
return mixed

一个有效的缓存键.

getCachedContent() public 方法

如果可用, 则返回缓存的内容.

public string|false getCachedContent ( )
return string|false

缓存的内容. 如果在缓存中找不到有效的内容, 则返回false.

init() public 方法

初始化 FragmentCache 对象.

public void init ( )
run() public 方法

标记要缓存的内容的结尾.

此方法调用之前和 init() 之后显示的内容将被捕获并保存在缓存中. 如果已经在缓存中找到有效内容, 则此方法不执行任何操作.

public void run ( )