| 包 | 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()
第二步初始化
避免因为关联到自身造成循环引用。