openlss / lib-account
账户管理抽象库,也管理联系人
Requires
- php: >=5.3.2
- openlss/func-bcrypt: ~0.0.1
- openlss/func-mda: ~0.0.1
- openlss/lib-config: ~0.0.1
- openlss/lib-db: ~0.0.1
Requires (Dev)
- openlss/core-boot: ~0.0.1
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);