Class yii\caching\DbQueryDependency
继承 | yii\caching\DbQueryDependency » yii\caching\Dependency » yii\base\BaseObject |
---|---|
实现 | yii\base\Configurable |
可用版本自 | 2.0.12 |
源码 | https://github.com/yiichina/yii2/blob/api/framework/caching/DbQueryDependency.php |
DbQueryDependency 是基于一个 yii\db\QueryInterface 实例的查询结果实现的依赖类。
如果查询结果有变化,那么就认为依赖发生了变化。 查询语句由 $query 属性指定。
任何实现了 yii\db\QueryInterface 接口的对象都能用,所以这个依赖不仅可以在普通的关系数据库中使用, 在 MongoDB,Redis 这些系统中也能使用。
在 Cache 上更多的详情和详细的使用信息,请参考 guide article on caching。
公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
$data | mixed | 存储在缓存中的依赖数据, 将来会取出来和最新的依赖数据进行比较。 | yii\caching\Dependency |
$db | string|array|object | 数据库连接的应用组件 ID, 也可以是连接对象或者数组格式的配置。 该属性也可以留空,这允许根据查询来自动决定连接对象。 | yii\caching\DbQueryDependency |
$method | string|callable | 使用 $query 对象作为参数调用的方法。
如果它是字符串,这表示一个自有的查询方法名,那么传递 $db 属性作为第一个参数直接调用。
比如 exists ,all 方法名。
该属性也可以是如下签名的 PHP 回调函数:
` php
function (QueryInterface $query, mixed $db) {
//return mixed;
}
`
如果没有设置 - 那么会使用 yii\db\QueryInterface::one() 方法。 |
yii\caching\DbQueryDependency |
$query | yii\db\QueryInterface | 实现接口的查询对象,它的结果决定依赖是否发生了变化。 实际的查询方法有 $method 属性决定并调用。 | yii\caching\DbQueryDependency |
$reusable | boolean | 依赖是否重用。True 表示当前依赖对象的依赖数据只在每个请求里生成一次。 这允许你在多个单独的缓存调用中使用相同的缓存依赖对象, 这样就会生成相同的数据页但是减少了每次生成缓存数据的开销。 默认是 false。 | yii\caching\Dependency |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
__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 |
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 |
evaluateDependency() | 通过生成和保存依赖相关的数据来计算依赖。 该方法会在缓存对象把要缓存的数据写入缓存之前调用。 | yii\caching\Dependency |
getHasChanged() | 返回表明依赖是否发生变化的值。 | yii\caching\Dependency |
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\base\BaseObject |
isChanged() | 检测依赖是否发生了变化。 | yii\caching\Dependency |
resetReusableData() | 重置所有重用依赖的缓存数据。 | yii\caching\Dependency |
受保护的方法
方法 | 描述 | 被定义在 |
---|---|---|
generateDependencyData() | 生成在判断依赖是否发生变化时用到的依赖数据。 | yii\caching\DbQueryDependency |
generateReusableHash() | 生成一个唯一的散列,它可以用来接收可重用的缓存数据。 | yii\caching\Dependency |
属性详情
数据库连接的应用组件 ID, 也可以是连接对象或者数组格式的配置。 该属性也可以留空,这允许根据查询来自动决定连接对象。
使用 $query 对象作为参数调用的方法。
如果它是字符串,这表示一个自有的查询方法名,那么传递 $db 属性作为第一个参数直接调用。
比如 exists
,all
方法名。
该属性也可以是如下签名的 PHP 回调函数:
function (QueryInterface $query, mixed $db) {
//return mixed;
}
如果没有设置 - 那么会使用 yii\db\QueryInterface::one() 方法。
实现接口的查询对象,它的结果决定依赖是否发生了变化。 实际的查询方法有 $method 属性决定并调用。
方法详情
生成在判断依赖是否发生变化时用到的依赖数据。
该方法返回查询的结果。
protected mixed generateDependencyData($cache) | ||
$cache | yii\caching\CacheInterface | 正在计算缓存依赖的缓存组件。 |
return | mixed | 判断依赖是否发生变化时用到的依赖数据。 |
---|---|---|
throws | yii\base\InvalidConfigException | 如果配置是无效的时候。 |