私はこのテーマについてかなり混乱しています。たとえば、認証クラス(ログイン、ログアウト、ログインしているかどうかの確認)があるとします。
Userクラス(User、getter、setter、saveなどを保持します)
ユーザーの作成やユーザー名の検証などはどこに置くべきですか?「UserManager」などの新しいクラス?
これは設計上の質問であり、これを行うための客観的に正しい方法がおそらくないため、答えるのが少し難しくなります。むしろ、何人かの人々が、すべてが等しくうまく機能するいくつかの異なるソリューションを作成しました。
1つの提案は、(returnsオブジェクト)や(returns )、および( returning )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...
}