类结构

时间:2012-12-05 15:03:04

标签: php oop

我对这个问题很困惑,假设我有一个Authentication类(登录,注销,检查是否登录)

用户类(包含用户,getter,setter,save等)

我应该在哪里放置诸如创建用户之类的内容,以及验证用户名?一个新类,如“UserManager”或其他东西?

2 个答案:

答案 0 :(得分:5)

这更像是一个设计问题,这使得它有点难以回答,因为可能没有客观正确的方法来做到这一点。相反,有几个人已经创建了几个不同的解决方案,所有这些解决方案都同样有效。

一个建议是创建一个Users(复数)类,其中包含addNew(返回User object)和userExists等公共方法(返回Bool }),以及validateUsername(也返回Bool)。

Users类可能包含用于管理整个用户群的其他逻辑。

答案 1 :(得分:0)

我喜欢做的是在用户类

中包含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...
}