openlss/lib-account

账户管理抽象库,也管理联系人

0.0.12 2013-04-09 21:23 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:56:03 UTC


README

账户管理抽象库

Account 类是 Account 功能(如员工、客户、成员、订阅者等)的基抽象。

不推荐单独使用,但函数在此处记录,因为它们由扩展者继承。

请查看 example/lib/clients.php 以获取扩展示例(可以直接使用)

请查看 example/lib/client_contact.php 以获取扩展 lib/contact.php 的示例,该库也包含在此包中。

还包括 SQL 文件

  • example/clients.sql 客户端扩展所使用的模式
  • example/contacts.sql 客户端联系人扩展所使用的模式

账户套件还与 openlss/lib-session 非常好地接口,提供了一个完整的工作界面来显示此功能,以下示例也包括在内

  • example/lib/client_session.php 会话扩展
  • 需要 * openlss/lib-session * openlss/lib-url
  • example/init/90_client_session.php 用于启动和检查会话的初始化处理程序
  • 需要 * openlss/func-ui * openlss/lib-config * openlss/lib-url
  • example/url/50_client_session.php 用于会话的 URL 定义
  • 需要 * openlss/lib-url
  • example/client_session.sql 客户端会话扩展使用的模式
  • example/ctl/client_login.php 示例登录控制器
  • 需要 * openlss/func-mda-glob * openlss/func-ui * openlss/lib-tpl * openlss/lib-url
  • example/ctl/client_logout.php 示例注销控制器
  • 需要 * openlss/func-ui * openlss/lib-url
  • example/ctl/client_profile.php 示例配置管理器
  • 需要 * openlss/func-ui * openlss/lib-tpl * openlss/lib-url
  • example/theme/client_login.xhtml 示例登录模板
  • example/theme/client_profile.xhtml 示例配置模板
  • example/theme/account_profile.xhtml 示例账户配置父模板

用法

use \LSS\Db;

//connect
Db::_get()->setConfig($dbconfig)->connect();

//execute a fetch
$result = Db::_get()->fetch('SELECT * FROM `table` WHERE `col` = ?',array($col));

参考

对 PDO 的调用

参考中未显示的任何函数都直接传递给 PDO。

单例信息

Db 可以并且推荐作为单例使用以重用相同的 PDO 实例。

如果需要多个连接,请使用自定义方法来维护实例。

($this) Db::setConfig($config)

设置数据库系统的配置。

接受具有以下结构的数组

$config = array(
	 'driver'		=>	'mysql'
	,'database'		=>	'database_name'
	,'host'			=>	'server_host'
	,'port'			=>	'server_port'
	,'user'			=>	'username'
	,'password'		=>	'password'
);

($this) Db::connect()

将使用当前配置并连接

(int) Db::getQueryCount()

返回当前查询数

(bool) Db::close()

关闭打开的 PDO 实例(如果有的话)

(array) Db::prepWhere($pairs,$type='WHERE')

准备用于查询的 WHERE 字符串

  • $pairs 是一个子句数组,可以采用以下 4 种格式
  • 'field-name' => array($bool='AND',$operator='=',$value)
  • 'field-name' => array($operator='=',$value) //bool 默认为 AND
  • 'field-name' => array($operator) //bool 默认为 AND,value 默认为 NULL
  • 'field-name' => $value //bool 默认为 AND,operator 默认为 =
  • 注意:使用 Db::IS_NULL 和 Db::IS_NOT_NULL 作为空值运算符
  • $type 指定字符串的开始,默认为 'WHERE'
  • 返回一个数组,其成员包括
  • [0] 生成的 WHERE 子句;编译用于与 PDO::prepare 一起使用,包括前导空格(即用即可)
  • [n] 值数组;准备好用于与 PDO::execute 一起使用

(int) Db::insert($table,$params=array(),$update_if_exists=false)

使用给定参数向表中插入

当 $update_if_exists 设置为 TRUE 时,它将执行 INSERT OR UPDATE 查询。

(bool) Db::update($table,$keys=array(),$params=array())

更新数据库中的记录

  • $table 要更新的表
  • $keys 与 prepWhere 兼容的键值对
  • $params 要更新的键值对数组

(result) Db::fetch($stmt,$params=array(),$throw_exception=Db::NO_EXCEPTIONS,$except_code=null,$flatten=Db::NO_FLATTEN)

从查询中检索单行并返回结果

  • $stmt SQL查询
  • $params 绑定到查询的参数
  • $throw_exception 当设置为 Db::EXCEPTIONS 时,在结果未找到时抛出异常
  • $except_cde 异常中抛出的代码
  • $flatten 当设置为 Db::FLATTEN 时,将返回特定列的值数组

受保护的内部宏函数

这些应在扩展类内部使用,并在 Account 父抽象类的方法内部使用,如果这些方法未被扩展。

(结果数组) Account::_fetchAll($pairs=array())

受保护的内部宏函数;可选地通过直接传递给 Db::prepWhere() 的原始 $pairs 限制。从选定的目标表返回 Db::fetchAll(),通过 addMacroFields() 增强。

(int 或 bool) Account::_create($data,$contact_extra=array(),$account_extra=array())

受保护的内部宏函数;此函数在 Contacts 表和 Accounts 表中创建条目。返回新账户的 (int)Account_ID,或任何错误时返回 (bool)false。

protected static function _createParams($extra=array())
protected static function _fetchByEmail($pairs=array(),$except)
protected static function _fetch($pairs=array())

(结果数组) protected static function addMacroFields($c)

protected static function getQuery()
final public static function auth($password,&$c)
final public static function contactDrop($account_id=null,$value=null,$name='contact_id')
final public static function deactivate($id,$contact=true)
final public static function delete($id,$contact=true)
final public static function fetchContacts($account_id)
final public static function update($account_id,$data)
final public static function updateLastLogin(&$c)
final public static function validate($data,$password=true)
public static function fetchAll();
public static function create($data);
public static function createParams();
public static function fetch($account_id);
public static function fetchByContact($contact_id);
public static function fetchByEmail($email,$except=false);
public static function register($data);