没有命名空间的类 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\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

参见 yii\db\QueryInterface.

公共属性

隐藏继承的属性

属性类型描述被定义在
$data mixed 存储在缓存中的依赖数据, 将来会取出来和最新的依赖数据进行比较。 yii\caching\Dependency
$db string|array|object 数据库连接的应用组件 ID, 也可以是连接对象或者数组格式的配置。 该属性也可以留空,这允许根据查询来自动决定连接对象。 yii\caching\DbQueryDependency
$method string|callable 使用 $query 对象作为参数调用的方法。 如果它是字符串,这表示一个自有的查询方法名,那么传递 $db 属性作为第一个参数直接调用。 比如 existsall 方法名。 该属性也可以是如下签名的 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

属性详情

$db 公共 属性

数据库连接的应用组件 ID, 也可以是连接对象或者数组格式的配置。 该属性也可以留空,这允许根据查询来自动决定连接对象。

public string|array|object $db null
$method 公共 属性

使用 $query 对象作为参数调用的方法。

如果它是字符串,这表示一个自有的查询方法名,那么传递 $db 属性作为第一个参数直接调用。 比如 existsall 方法名。

该属性也可以是如下签名的 PHP 回调函数:

function (QueryInterface $query, mixed $db) {
    //return mixed;
}

如果没有设置 - 那么会使用 yii\db\QueryInterface::one() 方法。

public string|callable $method null
$query 公共 属性

实现接口的查询对象,它的结果决定依赖是否发生了变化。 实际的查询方法有 $method 属性决定并调用。

方法详情

generateDependencyData() 受保护 方法

生成在判断依赖是否发生变化时用到的依赖数据。

该方法返回查询的结果。

protected mixed generateDependencyData($cache)
$cache yii\caching\CacheInterface

正在计算缓存依赖的缓存组件。

return mixed

判断依赖是否发生变化时用到的依赖数据。

throws yii\base\InvalidConfigException

如果配置是无效的时候。