我对这个主题很困惑,假设我有一个身份验证类(登录、注销、检查是否登录)
用户类(包含用户、getter、setter、save 等)
我应该把创建用户和验证用户名之类的东西放在哪里?一个新的类,比如“UserManager”之类的?
这更像是一个设计问题,这使得它有点难以回答,因为可能没有客观正确的方法来做到这一点。相反,有几个人创建了几种不同的解决方案,它们都同样有效。
一个建议是创建一个Users
(复数)类,该类具有公共方法,如addNew
(返回User
对象)和userExists
(返回Bool
),以及validateUsername
(也返回Bool
)。
此类Users
可能包含用于管理整个用户群的附加逻辑。
我喜欢做的是在用户类中包含 create/validate/etc.. 方法
class user{
function __construct($iduser){
$this->id=$iduser;
}
function getHref(){
return "/profile/".$this->id;
}
function create($username){
//insert your user in db
//retrieve the id of the created user
$iduser=mysql_insert_id();
$newuser=new user($iduser);
return $newuser;
}
function validate($username){
mysql_query("your code to validate");
return true or false;
}
}
$name="john";
if(user::validate("$name")){
$mynewuser=user::create("john");
$href=$mynewuser->getHref();
header("Location: $href"); //let s redirect him to its home page
//or use any other method...
}