模块

Model_User_Token
继承自 Model

模型基类。所有的模型都应该继承这个类。

package
BootPHP
author
Tinsh
copyright
© 2005-2016 Kilofox Studio

该类在 MODPATH/auth/classes/model/user/token.php 第 5 行声明。

属性

protected $_db

private $_loaded

private $_values

方法

public create( object $data ) (在 Model_User_Token 中定义)

创建新令牌

参数

  • object $data required - 键值对

返回值

  • mixed - 插入的数据ID 或 false

源代码

public function create($data)
{
	$data->token = $this->createToken();
	if ($id = $this->_db->insert('user_tokens', $data))
	{
		$this->load($id);
		return $this->_values;
	}
}

public delete( ) (在 Model_User_Token 中定义)

删除令牌

返回值

  • mixed - 执行结果

源代码

public function delete()
{
	if ($this->_loaded)
	{
		$where = "`id` = '{$this->_values->id}'";
		return $this->_db->delete('user_tokens', $where);
	}
	return false;
}

public deleteByUser( ) (在 Model_User_Token 中定义)

根据用户ID删除令牌

返回值

  • mixed - 执行结果

源代码

public function deleteByUser($userId = 0)
{
	if ($userId)
	{
		$where = "`user_id` = '$userId'";
		return $this->_db->delete('user_tokens', $where);
	}
	return false;
}

public deleteExpired( ) (在 Model_User_Token 中定义)

删除过期令牌

返回值

  • mixed - 执行结果

源代码

public function deleteExpired()
{
	$time = time();
	$where = "`expires` < '$time'";
	return $this->_db->delete('user_tokens', $where);
}

public static factory( ) (在 Model_User_Token 中定义)

创建并返回一个新的模型对象

返回值

  • 对象

源代码

public static function factory($name)
{
	return parent::factory($name);
}

public load( ) (在 Model_User_Token 中定义)

根据主键加载数据,并返回对象

返回值

  • 对象

源代码

public function load($id = 0)
{
	if ($id)
	{
		$sql = "SELECT * FROM `" . $this->_db->tablePrefix . "user_tokens` WHERE `id` = '$id'";
		$this->_values = $this->_db->select($sql);
		$this->_loaded = true;
		// 做垃圾回收
		if (mt_rand(1, 100) === 1)
		{
			$this->deleteExpired();
		}
		// 令牌已过期
		if ($this->_values->expires < time())
		{
			$this->delete();
		}
	}
	return $this->_values;
}

public loadByToken( ) (在 Model_User_Token 中定义)

根据 token 加载数据,并返回对象属性

返回值

  • 对象

源代码

public function loadByToken($token)
{
	if ($token)
	{
		$sql = "SELECT * FROM `" . $this->_db->tablePrefix . "user_tokens` WHERE `token` = '$token'";
		$this->_values = $this->_db->select($sql);
		$this->_loaded = true;
	}
	return $this->_values;
}

public update( ) (在 Model_User_Token 中定义)

更新令牌

返回值

  • mixed - 影响的行数或布尔值

源代码

public function update()
{
	if ($this->_loaded)
	{
		$where = "`id` = '{$this->_values->id}'";
		return $this->_db->update('user_tokens', $this->_values, $where);
	}
	return false;
}

public __construct( ) (在 Model 中定义)

源代码

public function __construct()
{
	if (!is_object($this->_db))
	{
		$this->_db = Database::instance();
	}
}

private createToken( ) (在 Model_User_Token 中定义)

源代码

private function createToken()
{
	do
	{
		$token = sha1(uniqid(Text::random('alnum', 32), true));
	}
	while ($this->loadByToken($token));
	return $token;
}