包 | orm |
---|---|
类层次 | class QDB_ActiveRecord_Meta |
实现的接口 |
QDB_ActiveRecord_Meta 类封装了 QDB_ActiveRecord_Abstract 继承类的元信息
属性 | 类型 | 描述 | 定义于 |
---|---|---|---|
$idname | array | ID 属性名 | QDB_ActiveRecord_Meta |
$idname_count | int | ID 属性包含多少个属性 | QDB_ActiveRecord_Meta |
$table_meta | array | 数据表的元信息 | QDB_ActiveRecord_Meta |
$validations | array | 验证规则 | QDB_ActiveRecord_Meta |
$attr_accessible | array | 允许使用 mass-assignment 方式赋值的属性 | QDB_ActiveRecord_Meta |
$attr_protected | array | 拒绝使用 mass-assignment 方式赋值的属性 | QDB_ActiveRecord_Meta |
$create_reject | array | 创建时要过滤的属性 | QDB_ActiveRecord_Meta |
$update_reject | array | 更新时要过滤的属性 | QDB_ActiveRecord_Meta |
$create_autofill | array | 创建时要自动填充的属性 | QDB_ActiveRecord_Meta |
$update_autofill | array | 更新时要自动填充的属性 | QDB_ActiveRecord_Meta |
$props2fields | array | 属性到字段名的映射 | QDB_ActiveRecord_Meta |
$fields2props | array | 字段名到属性的映射 | QDB_ActiveRecord_Meta |
$props | array of properties meta | 所有属性的元信息 | QDB_ActiveRecord_Meta |
$default_props | array | 所有属性的默认值,用于初始化一个新的 ActiveRecord 实例 | QDB_ActiveRecord_Meta |
$associations | array of QDB_ActiveRecord_Association_Abstract | ActiveRecord 之间的关联 | QDB_ActiveRecord_Meta |
$callbacks | array of callbacks | 事件钩子 | QDB_ActiveRecord_Meta |
$methods | array of callbacks | 扩展的方法 | QDB_ActiveRecord_Meta |
$static_methods | array of callbacks | 扩展的静态方法 | QDB_ActiveRecord_Meta |
$table | QDB_Table | 表数据入口 | QDB_ActiveRecord_Meta |
$class_name | string | Meta 对应的 ActiveRecord 继承类 | QDB_ActiveRecord_Meta |
$inherit_base_class | string | ActiveRecord 的基础类 | QDB_ActiveRecord_Meta |
$inherit_type_field | string | 用于指定继承类名称的字段名 | QDB_ActiveRecord_Meta |
$belongsto_props | array | BELONGS_TO 关联的 source_key | QDB_ActiveRecord_Meta |
属性 | 类型 | 描述 | 定义于 |
---|---|---|---|
$_behaviors | array of QDB_ActiveRecord_Behavior_Abstract objects | 行为插件对象 | QDB_ActiveRecord_Meta |
$_associations_inited | boolean | 指示是否已经初始化了对象的关联 | QDB_ActiveRecord_Meta |
$_assoc_types | array | 可用的对象聚合类型 | QDB_ActiveRecord_Meta |
$_validation_policy_options | array | 验证策略可用的选项 | QDB_ActiveRecord_Meta |
$_metas | array of QDB_ActiveRecord_Meta | 所有 ActiveRecord 继承类的 Meta 对象 | QDB_ActiveRecord_Meta |
方法 | 描述 | 定义于 |
---|---|---|
instance() | 获得指定指定 ActiveRecord 继承类的元对象唯一实例 | QDB_ActiveRecord_Meta |
newObject() | 返回一个根据 $data 数组构造的 ActiveRecord 继承类实例 | QDB_ActiveRecord_Meta |
createFromTable() | 根据表名构造一个元对象 | QDB_ActiveRecord_Meta |
find() | 开启一个查询 | QDB_ActiveRecord_Meta |
findByArgs() | 开启一个查询,并根据提供的参数设置查询对象 | QDB_ActiveRecord_Meta |
updateWhere() | 更新符合条件的对象 | QDB_ActiveRecord_Meta |
updateDbWhere() | 更新符合条件的记录 | QDB_ActiveRecord_Meta |
destroyWhere() | 实例化符合条件的对象,并调用这些对象的 destroy() 方法,返回被删除的对象数 | QDB_ActiveRecord_Meta |
deleteWhere() | 从数据库中直接删除符合条件的对象 | QDB_ActiveRecord_Meta |
validate() | 对数据进行验证,返回所有未通过验证数据的错误信息 | QDB_ActiveRecord_Meta |
relatedObjects() | 获得对象的关联对象 | QDB_ActiveRecord_Meta |
hasBindBehavior() | 检查是否绑定了指定的行为插件 | QDB_ActiveRecord_Meta |
bindBehaviors() | 绑定行为插件 | QDB_ActiveRecord_Meta |
unbindBehaviors() | 撤销与指定行为插件的绑定 | QDB_ActiveRecord_Meta |
addDynamicMethod() | 添加一个动态方法 | QDB_ActiveRecord_Meta |
removeDynamicMethod() | 删除指定的动态方法 | QDB_ActiveRecord_Meta |
addStaticMethod() | 添加一个静态方法 | QDB_ActiveRecord_Meta |
removeStaticMethod() | 删除指定的静态方法 | QDB_ActiveRecord_Meta |
setPropSetter() | 设置属性的 setter 方法 | QDB_ActiveRecord_Meta |
unsetPropSetter() | 取消属性的 setter 方法 | QDB_ActiveRecord_Meta |
setPropGetter() | 设置属性的 getter 方法 | QDB_ActiveRecord_Meta |
unsetPropGetter() | 取消属性的 getter 方法 | QDB_ActiveRecord_Meta |
addEventHandler() | 为指定事件添加处理方法 | QDB_ActiveRecord_Meta |
addExceptionTrap() | 为指定对象添加异常捕捉器 | QDB_ActiveRecord_Meta |
removeEventHandler() | 删除指定事件的一个处理方法 | QDB_ActiveRecord_Meta |
addProp() | 添加一个属性 | QDB_ActiveRecord_Meta |
addAssoc() | 添加一个对象关联 | QDB_ActiveRecord_Meta |
hasAssoc() | 判断是否有指定关联 | QDB_ActiveRecord_Meta |
assoc() | 访问指定属性对应的关联 | QDB_ActiveRecord_Meta |
removeAssoc() | 移除一个关联 | QDB_ActiveRecord_Meta |
addValidation() | 为指定属性添加一个验证规则 | QDB_ActiveRecord_Meta |
propValidations() | 取得指定属性的所有验证规则 | QDB_ActiveRecord_Meta |
allValidations() | 取得所有属性的所有验证规则 | QDB_ActiveRecord_Meta |
removePropValidations() | 清除指定属性的所有验证规则 | QDB_ActiveRecord_Meta |
removeAllValidations() | 清除所有属性的所有验证规则 | QDB_ActiveRecord_Meta |
__call() | 调用 ActiveRecord 继承类定义的自定义静态方法 | QDB_ActiveRecord_Meta |
方法 | 描述 | 定义于 |
---|---|---|
__construct() | 构造函数 | QDB_ActiveRecord_Meta |
_prepareValidationRules() | 准备验证策略 | QDB_ActiveRecord_Meta |
_tableByName() | 根据数据表名称获得表数据入口对象 | QDB_ActiveRecord_Meta |
_tableByClass() | 根据类名称获得表数据入口对象 | QDB_ActiveRecord_Meta |
_init1() | 第一步初始化 | QDB_ActiveRecord_Meta |
_init2() | 第二步初始化 | QDB_ActiveRecord_Meta |
ID 属性名
ID 属性包含多少个属性
数据表的元信息
验证规则
允许使用 mass-assignment 方式赋值的属性
如果指定了 attr_accessible,则忽略 attr_protected 的设置。
拒绝使用 mass-assignment 方式赋值的属性
创建时要过滤的属性
更新时要过滤的属性
创建时要自动填充的属性
更新时要自动填充的属性
属性到字段名的映射
字段名到属性的映射
所有属性的元信息
所有属性的默认值,用于初始化一个新的 ActiveRecord 实例
ActiveRecord 之间的关联
array ( 'prop_name' => $assoc )
如果关联已经初始化,则 $assoc 是一个 QDB_ActiveRecord_Association_Abstract 继承类实例。 否则 $assoc 为 false。
事件钩子
扩展的方法
扩展的静态方法
表数据入口
Meta 对应的 ActiveRecord 继承类
ActiveRecord 的基础类
用于指定继承类名称的字段名
BELONGS_TO 关联的 source_key
行为插件对象
指示是否已经初始化了对象的关联
可用的对象聚合类型
验证策略可用的选项
所有 ActiveRecord 继承类的 Meta 对象
protected void __construct($class)
$class | string | |
{return} |
构造函数
public static QDB_ActiveRecord_Meta instance($class)
$class | string | |
{return} | QDB_ActiveRecord_Meta |
获得指定指定 ActiveRecord 继承类的元对象唯一实例
public QDB_ActiveRecord_Abstract newObject($data)
$data | ||
{return} | QDB_ActiveRecord_Abstract |
返回一个根据 $data 数组构造的 ActiveRecord 继承类实例
public void createFromTable($table_name, $class_name)
$table_name | ||
$class_name | ||
{return} |
根据表名构造一个元对象
public QDB_Select find()
开启一个查询
public QDB_Select findByArgs($args)
$args | array | |
{return} | QDB_Select |
开启一个查询,并根据提供的参数设置查询对象
public void updateWhere($attribs)
$attribs | array | |
{return} |
更新符合条件的对象
public void updateDbWhere()
更新符合条件的记录
public int destroyWhere()
实例化符合条件的对象,并调用这些对象的 destroy() 方法,返回被删除的对象数
public void deleteWhere()
从数据库中直接删除符合条件的对象
与 destroyWhere() 不同,deleteWhere() 会直接从数据库中删除符合条件的记录。 而不是先把符合条件的对象查询出来再调用对象的 destroy() 方法进行删除。
因此,deleteWhere() 速度更快,但无法处理对象间的关联关系。
public array validate($data, $props, $mode)
$data | array | 要验证的数据 |
$props | array|string | 指定仅仅验证哪些属性 |
$mode | string | 验证模式 |
{return} | array | 所有没有通过验证的属性名称及验证规则 |
对数据进行验证,返回所有未通过验证数据的错误信息
public QDB_ActiveRecord_Abstract|QDB_ActiveRecord_Association_Coll relatedObjects($obj, $prop_name)
$obj | QDB_ActiveRecord_Abstract | |
$prop_name | string | |
{return} | QDB_ActiveRecord_Abstract|QDB_ActiveRecord_Association_Coll |
获得对象的关联对象
public void hasBindBehavior($name)
$name | ||
{return} |
检查是否绑定了指定的行为插件
public QDB_ActiveRecord_Meta bindBehaviors($behaviors, $config)
$behaviors | string|array | |
$config | array | |
{return} | QDB_ActiveRecord_Meta |
绑定行为插件
public QDB_ActiveRecord_Meta unbindBehaviors($behaviors)
$behaviors | string|array | |
{return} | QDB_ActiveRecord_Meta |
撤销与指定行为插件的绑定
public QDB_ActiveRecord_Meta addDynamicMethod($method_name, $callback, $custom_parameters)
$method_name | string | |
$callback | callback | |
$custom_parameters | array | |
{return} | QDB_ActiveRecord_Meta |
添加一个动态方法
public QDB_ActiveRecord_Meta removeDynamicMethod($method_name)
$method_name | string | |
{return} | QDB_ActiveRecord_Meta |
删除指定的动态方法
public QDB_ActiveRecord_Meta addStaticMethod($method_name, $callback, $custom_parameters)
$method_name | string | |
$callback | callback | |
$custom_parameters | array | |
{return} | QDB_ActiveRecord_Meta |
添加一个静态方法
public QDB_ActiveRecord_Meta removeStaticMethod($method_name)
$method_name | string | |
{return} | QDB_ActiveRecord_Meta |
删除指定的静态方法
public QDB_ActiveRecord_Meta setPropSetter($prop_name, $callback, $custom_parameters)
$prop_name | string | |
$callback | callback | |
$custom_parameters | array | |
{return} | QDB_ActiveRecord_Meta |
设置属性的 setter 方法
public QDB_ActiveRecord_Meta unsetPropSetter($prop_name)
$prop_name | string | |
{return} | QDB_ActiveRecord_Meta |
取消属性的 setter 方法
public QDB_ActiveRecord_Meta setPropGetter($name, $callback, $custom_parameters)
$name | string | |
$callback | callback | |
$custom_parameters | array | |
{return} | QDB_ActiveRecord_Meta |
设置属性的 getter 方法
public QDB_ActiveRecord_Meta unsetPropGetter($prop_name)
$prop_name | string | |
{return} | QDB_ActiveRecord_Meta |
取消属性的 getter 方法
public QDB_ActiveRecord_Meta addEventHandler($event_type, $callback, $custom_parameters)
$event_type | int | |
$callback | callback | |
$custom_parameters | array | |
{return} | QDB_ActiveRecord_Meta |
为指定事件添加处理方法
public QDB_ActiveRecord_Meta addExceptionTrap($obj, $exception_type, $callback, $custom_parameters)
$obj | QDB_ActiveRecord_Abstract | |
$exception_type | int | |
$callback | callback | |
$custom_parameters | array | |
{return} | QDB_ActiveRecord_Meta |
为指定对象添加异常捕捉器
public QDB_ActiveRecord_Meta removeEventHandler($event_type, $callback)
$event_type | int | |
$callback | callback | |
{return} | QDB_ActiveRecord_Meta |
删除指定事件的一个处理方法
public QDB_ActiveRecord_Meta addProp($prop_name, $config)
$prop_name | string | |
$config | array | |
{return} | QDB_ActiveRecord_Meta |
添加一个属性
public QDB_ActiveRecord_Meta addAssoc($prop_name, $assoc_type, $config)
$prop_name | string | |
$assoc_type | int | |
$config | array | |
{return} | QDB_ActiveRecord_Meta |
添加一个对象关联
$prop_name 参数指定使用 ActiveRecord 对象的什么属性来引用关联的对象。 例如“文章”对象的 comments 属性引用了多个关联的“评论”对象。
$assoc_type 指定了关联的类型,可以是 QDB::BELONGS_TO、QDB::HAS_MANY、QDB::HAS_ONE 或 QDB::MANY_TO_MANY。
$config 指定了关联的属性,可用的属性有多项。
public boolean hasAssoc($prop_name)
$prop_name | ||
{return} | boolean |
判断是否有指定关联
public QDB_ActiveRecord_Association_Abstract assoc($prop_name)
$prop_name | string | |
{return} | QDB_ActiveRecord_Association_Abstract |
访问指定属性对应的关联
public QDB_ActiveRecord_Meta removeAssoc($prop_name)
$prop_name | string | |
{return} | QDB_ActiveRecord_Meta |
移除一个关联
public QDB_ActiveRecord_Meta addValidation($prop_name, $validation)
$prop_name | string | |
$validation | mixed | |
{return} | QDB_ActiveRecord_Meta |
为指定属性添加一个验证规则
public array propValidations($prop_name)
$prop_name | string | |
{return} | array |
取得指定属性的所有验证规则
public array allValidations()
取得所有属性的所有验证规则
public QDB_ActiveRecord_Meta removePropValidations($prop_name)
$prop_name | string | |
{return} | QDB_ActiveRecord_Meta |
清除指定属性的所有验证规则
public QDB_ActiveRecord_Meta removeAllValidations()
清除所有属性的所有验证规则
public mixed __call($method_name, $args)
$method_name | string | |
$args | array | |
{return} | mixed |
调用 ActiveRecord 继承类定义的自定义静态方法
protected void _prepareValidationRules($policies, $ref, $set_policy)
$policies | array | 要解析的策略 |
$ref | array | 用于 include 参考的策略 |
$set_policy | boolean | 是否指定验证策略 |
{return} |
准备验证策略
protected QDB_Table _tableByName($table_name, $table_config)
$table_name | string | |
$table_config | array | |
{return} | QDB_Table |
根据数据表名称获得表数据入口对象
protected QDB_Table _tableByClass($table_class, $table_config)
$table_class | string | |
$table_config | array | |
{return} | QDB_Table |
根据类名称获得表数据入口对象
protected void _init1($class)
$class | string | |
{return} |
第一步初始化
protected void _init2()
第二步初始化
避免因为关联到自身造成循环引用。