包 | orm |
---|---|
类层次 | class QDB_ActiveRecord_Abstract |
实现的接口 | |
版本 | $Id: activerecord.php 2634 2009-07-22 09:17:36Z dualface $ |
QDB_ActiveRecord_Abstract 类实现了 Active Record 模式
属性 | 类型 | 描述 | 定义于 |
---|---|---|---|
$_props | array | 对象所有属性的值 | QDB_ActiveRecord_Abstract |
$_class_name | string | 当前 ActiveRecord 对象的类名称 | QDB_ActiveRecord_Abstract |
$_id | mixed | 对象的 ID | QDB_ActiveRecord_Abstract |
$_meta | QDB_ActiveRecord_Meta | ActiveRecord 继承类使用的 Meta 对象 | QDB_ActiveRecord_Abstract |
方法 | 描述 | 定义于 |
---|---|---|
__construct() | 构造函数 | QDB_ActiveRecord_Abstract |
id() | 获得对象的 ID(既对象在数据库中的主键值) | QDB_ActiveRecord_Abstract |
idname() | 获得对象的 ID 属性名(对象在数据库中的主键字段名) | QDB_ActiveRecord_Abstract |
isNewRecord() | 确定对象是否对应数据库中的一条记录 | QDB_ActiveRecord_Abstract |
getMeta() | 返回当前对象的元信息对象 | QDB_ActiveRecord_Abstract |
save() | 保存对象到数据库 | QDB_ActiveRecord_Abstract |
__clone() | 返回当前对象的一个复制品 | QDB_ActiveRecord_Abstract |
hasProp() | 判断对象是否有特定的属性 | QDB_ActiveRecord_Abstract |
reload() | 从数据库重新读取当前对象的属性,不影响关联的对象 | QDB_ActiveRecord_Abstract |
validate() | 验证对象属性,失败抛出异常 | QDB_ActiveRecord_Abstract |
destroy() | 销毁对象对应的数据库记录 | QDB_ActiveRecord_Abstract |
changeProps() | 批量设置对象的属性值 | QDB_ActiveRecord_Abstract |
changePropForce() | 强制改变一个属性的值,忽略属性的 readonly 设置 | QDB_ActiveRecord_Abstract |
changed() | 确认对象或指定的对象属性是否已经被修改 | QDB_ActiveRecord_Abstract |
willChanged() | 将指定的属性设置为“脏”状态 | QDB_ActiveRecord_Abstract |
changes() | 获得修改过的属性 | QDB_ActiveRecord_Abstract |
cleanChanges() | 清除所有属性或指定的“脏”状态 | QDB_ActiveRecord_Abstract |
toArray() | 获得包含对象所有属性的数组 | QDB_ActiveRecord_Abstract |
toJSON() | 返回对象所有属性的 JSON 字符串 | QDB_ActiveRecord_Abstract |
__get() | 魔法方法,实现对象属性值的读取 | QDB_ActiveRecord_Abstract |
__set() | 魔法方法,实现对象属性的设置 | QDB_ActiveRecord_Abstract |
__isset() | 魔法方法,实现对 isset() 的支持 | QDB_ActiveRecord_Abstract |
__call() | 魔法方法,用于调用行为插件为对象添加的方法 | QDB_ActiveRecord_Abstract |
offsetExists() | ArrayAccess 接口方法 | QDB_ActiveRecord_Abstract |
offsetSet() | ArrayAccess 接口方法 | QDB_ActiveRecord_Abstract |
offsetGet() | ArrayAccess 接口方法 | QDB_ActiveRecord_Abstract |
offsetUnset() | ArrayAccess 接口方法 | QDB_ActiveRecord_Abstract |
_qcoll_callback() | 用于 QColl 的回调方法 | QDB_ActiveRecord_Abstract |
multiToJSON() | 将多个 ActiveRecord 对象转换为 JSON 字符串 | QDB_ActiveRecord_Abstract |
__define() | 返回对象的定义 | QDB_ActiveRecord_Interface |
find() | 开启一个查询,查找符合条件的对象或对象集合 | QDB_ActiveRecord_Interface |
meta() | 返回当前 ActiveRecord 类的元数据对象 | QDB_ActiveRecord_Interface |
方法 | 描述 | 定义于 |
---|---|---|
_method() | 调用 ActiveRecord 对象的动态方法 | QDB_ActiveRecord_Abstract |
_event() | 触发事件 | QDB_ActiveRecord_Abstract |
_create() | 在数据库中创建对象 | QDB_ActiveRecord_Abstract |
_update() | 更新对象到数据库 | QDB_ActiveRecord_Abstract |
_replace() | 替换数据库中的对象,如果不存在则创建新记录 | QDB_ActiveRecord_Abstract |
_autofill() | 对当前对象的属性进行自动填充 | QDB_ActiveRecord_Abstract |
_typed() | 返回类型化以后的值 | QDB_ActiveRecord_Abstract |
_before_validate() | 事件回调:开始验证之前 | QDB_ActiveRecord_Abstract |
_before_validate_post() | QDB_ActiveRecord_Abstract | |
_before_validate_on_create() | 事件回调:为创建记录进行的验证开始之前 | QDB_ActiveRecord_Abstract |
_before_validate_on_create_post() | QDB_ActiveRecord_Abstract | |
_after_validate_on_create() | 事件回调:为创建记录进行的验证完成之后 | QDB_ActiveRecord_Abstract |
_after_validate_on_create_post() | QDB_ActiveRecord_Abstract | |
_before_validate_on_update() | 事件回调:为更新记录进行的验证开始之前 | QDB_ActiveRecord_Abstract |
_before_validate_on_update_post() | QDB_ActiveRecord_Abstract | |
_after_validate_on_update() | 事件回调:为更新记录进行的验证完成之后 | QDB_ActiveRecord_Abstract |
_after_validate_on_update_post() | QDB_ActiveRecord_Abstract | |
_after_validate() | 事件回调:验证完成之后 | QDB_ActiveRecord_Abstract |
_after_validate_post() | QDB_ActiveRecord_Abstract | |
_before_save() | 事件回调:保存记录之前 | QDB_ActiveRecord_Abstract |
_before_save_post() | QDB_ActiveRecord_Abstract | |
_after_save() | 事件回调:保存记录之后 | QDB_ActiveRecord_Abstract |
_after_save_post() | QDB_ActiveRecord_Abstract | |
_before_create() | 事件回调:创建记录之前 | QDB_ActiveRecord_Abstract |
_before_create_post() | QDB_ActiveRecord_Abstract | |
_after_create() | 事件回调:创建记录之后 | QDB_ActiveRecord_Abstract |
_after_create_post() | QDB_ActiveRecord_Abstract | |
_before_update() | 事件回调:更新记录之前 | QDB_ActiveRecord_Abstract |
_before_update_post() | QDB_ActiveRecord_Abstract | |
_after_update() | 事件回调:更新记录之后 | QDB_ActiveRecord_Abstract |
_after_update_post() | QDB_ActiveRecord_Abstract | |
_before_destroy() | 事件回调:删除记录之前 | QDB_ActiveRecord_Abstract |
_before_destroy_post() | QDB_ActiveRecord_Abstract | |
_after_destroy() | 事件回调:删除记录之后 | QDB_ActiveRecord_Abstract |
_after_destroy_post() | QDB_ActiveRecord_Abstract | |
_after_initialize() | 事件回调:对象构造之后 | QDB_ActiveRecord_Abstract |
_after_initialize_post() | QDB_ActiveRecord_Abstract |
对象所有属性的值
当前 ActiveRecord 对象的类名称
对象的 ID
如果对象的 ID 是由多个属性组成,则 $_id 是一个由多个属性值组成的名值对。
ActiveRecord 继承类使用的 Meta 对象
指示对象的哪些属性已经做了修改
指示对象是否对应数据库中的一条记录
异常捕捉器
public void __construct($data, $names_style, $from_storage)
$data | array|object | 包含数据的名值对 |
$names_style | int | 名值对的键名风格 |
$from_storage | boolean | 是否从存储器载入数据 |
{return} |
构造函数
public mixed id($cached)
$cached | boolean | 默认返回缓存值 |
{return} | mixed |
获得对象的 ID(既对象在数据库中的主键值)
如果对象的 ID 是由多个属性组成,则 id() 方法会返回一个数组。
public string|array idname()
获得对象的 ID 属性名(对象在数据库中的主键字段名)
如果对象的 ID 是由多个属性组成,则 idname() 方法会返回一个包含多个属性名的数组。
public boolean isNewRecord()
确定对象是否对应数据库中的一条记录
public QDB_ActiveRecord_Meta getMeta()
返回当前对象的元信息对象
public QDB_ActiveRecord_Abstract save($recursion, $save_method)
$recursion | int | 保存操作递归到多少层 |
$save_method | string | 保存对象的方法 |
{return} | QDB_ActiveRecord_Abstract | 连贯接口 |
保存对象到数据库
public QDB_ActiveRecord_Abstract __clone()
返回当前对象的一个复制品
返回的复制品没有 ID 值,因此在保存时将会创建一个新记录。 __clone() 操作仅限当前对象的属性,对于关联的对象不会进行克隆。
public boolean hasProp($prop_name)
$prop_name | ||
{return} | boolean |
判断对象是否有特定的属性
public void reload()
从数据库重新读取当前对象的属性,不影响关联的对象
public array|null validate($mode)
$mode | string | 验证模式,可以是 general、create、update |
{return} | array|null | 为验证通过的项目及错误信息 |
验证对象属性,失败抛出异常
public void destroy()
销毁对象对应的数据库记录
public QDB_ActiveRecord_Abstract changeProps($arr, $names_style, $attr_accessible, $_from_storage, $_ignore_readonly)
$arr | array|object | 名值对数组 |
$names_style | int | 键名是属性名还是字段名 |
$attr_accessible | array|string | 指定哪些属性允许设置 |
$_from_storage | boolean | 内部参数 |
$_ignore_readonly | boolean | 内部参数 |
{return} | QDB_ActiveRecord_Abstract | 连贯接口 |
批量设置对象的属性值
如果指定了 $attr_accessible 参数,则会忽略 ActiveRecord 类的 attr_accessible 和 attr_protected 设置。
public QDB_ActiveRecord_Abstract changePropForce($prop_name, $prop_value)
$prop_name | string | 要改变的属性名 |
$prop_value | mixed | 属性的值 |
{return} | QDB_ActiveRecord_Abstract | 连贯接口 |
强制改变一个属性的值,忽略属性的 readonly 设置
public boolean changed($props_name)
$props_name | string|array | |
{return} | boolean |
确认对象或指定的对象属性是否已经被修改
public QDB_ActiveRecord_Abstract willChanged($props_name)
$props_name | string|array | |
{return} | QDB_ActiveRecord_Abstract | 连贯接口 |
将指定的属性设置为“脏”状态
public array changes()
获得修改过的属性
public QDB_ActiveRecord_Abstract cleanChanges($props)
$props | string|array | |
{return} | QDB_ActiveRecord_Abstract | 连贯接口 |
清除所有属性或指定的“脏”状态
public array toArray($recursion, $names_style)
$recursion | int | |
$names_style | int | |
{return} | array |
获得包含对象所有属性的数组
public string toJSON($recursion, $names_style)
$recursion | int | |
$names_style | int | |
{return} | string |
返回对象所有属性的 JSON 字符串
public mixed __get($prop_name)
$prop_name | string | |
{return} | mixed |
魔法方法,实现对象属性值的读取
public void __set($prop_name, $value)
$prop_name | string | |
$value | mixed | |
{return} |
魔法方法,实现对象属性的设置
public boolean __isset($prop_name)
$prop_name | string | |
{return} | boolean |
魔法方法,实现对 isset() 的支持
public mixed __call($method, $args)
$method | string | |
$args | array | |
{return} | mixed |
魔法方法,用于调用行为插件为对象添加的方法
public boolean offsetExists($prop_name)
$prop_name | string | |
{return} | boolean |
ArrayAccess 接口方法
public void offsetSet($prop_name, $value)
$prop_name | string | |
$value | mixed | |
{return} |
ArrayAccess 接口方法
public boolean offsetGet($prop_name)
$prop_name | string | |
{return} | boolean |
ArrayAccess 接口方法
public void offsetUnset($prop_name)
$prop_name | string | |
{return} |
ArrayAccess 接口方法
public static void _qcoll_callback()
用于 QColl 的回调方法
public static string multiToJSON($objects, $recursion, $names_style)
$objects | array | |
$recursion | int | |
$names_style | int | |
{return} | string |
将多个 ActiveRecord 对象转换为 JSON 字符串
protected mixed _method($method)
$method | string | |
{return} | mixed |
调用 ActiveRecord 对象的动态方法
protected void _event($event)
$event | int | |
{return} |
触发事件
protected void _create($recursion)
$recursion | int | |
{return} |
在数据库中创建对象
protected void _update($recursion)
$recursion | int | |
{return} |
更新对象到数据库
protected void _replace($recursion)
$recursion | int | |
{return} |
替换数据库中的对象,如果不存在则创建新记录
protected void _autofill($mode)
$mode | string | |
{return} |
对当前对象的属性进行自动填充
protected static mixed _typed($value, $ptype)
$value | mixed | |
$ptype | string | |
{return} | mixed |
返回类型化以后的值
protected void _before_validate()
事件回调:开始验证之前
protected void _before_validate_post()
protected void _before_validate_on_create()
事件回调:为创建记录进行的验证开始之前
protected void _before_validate_on_create_post()
protected void _after_validate_on_create()
事件回调:为创建记录进行的验证完成之后
protected void _after_validate_on_create_post()
protected void _before_validate_on_update()
事件回调:为更新记录进行的验证开始之前
protected void _before_validate_on_update_post()
protected void _after_validate_on_update()
事件回调:为更新记录进行的验证完成之后
protected void _after_validate_on_update_post()
protected void _after_validate()
事件回调:验证完成之后
protected void _after_validate_post()
protected void _before_save()
事件回调:保存记录之前
protected void _before_save_post()
protected void _after_save()
事件回调:保存记录之后
protected void _after_save_post()
protected void _before_create()
事件回调:创建记录之前
protected void _before_create_post()
protected void _after_create()
事件回调:创建记录之后
protected void _after_create_post()
protected void _before_update()
事件回调:更新记录之前
protected void _before_update_post()
protected void _after_update()
事件回调:更新记录之后
protected void _after_update_post()
protected void _before_destroy()
事件回调:删除记录之前
protected void _before_destroy_post()
protected void _after_destroy()
事件回调:删除记录之后
protected void _after_destroy_post()
protected void _after_initialize()
事件回调:对象构造之后
protected void _after_initialize_post()