Начал экспериментировать со строительными классами, и я начал с преобразования моей регистрации пользователя/входа в один класс. Хотелось остановиться и попросить обратную связь, прежде чем зайти слишком далеко.
class UserService
{
private $_email;
private $_password;
public function login($email, $password)
{
$this->_email = mysql_real_escape_string($email);
$this->_password = mysql_real_escape_string($password);
$user_id = $this->_checkCredentials();
if($user_id){
$_SESSION['user_id'] = $user_id;
return $user_id;
}
return false;
}
protected function _checkCredentials()
{
$query = "SELECT *
FROM users
WHERE email = '$this->_email'";
$result = mysql_query($query);
if(!empty($result)){
$user = mysql_fetch_assoc($result);
$submitted_pass = sha1($user['salt'] . $this->_password);
if($submitted_pass == $user['password']){
return $user['id'];
}
}
return false;
}
}
Один из вопросов, связанных с моим классом, заключается в следующем: должен ли я строить его следующим образом:
$User = new UserService();
$User->login($_POST['email'], $_POST['password']);
Если метод входа в систему вызывает метод _checkCredentials автоматически. Или он должен быть построен следующим образом:
$User = new UserService();
$UserId = $User->checkCredentials($_POST['email'], $_POST['password']);
$User->login($UserId);
Кроме того, мне нравятся некоторые советы о том, как реструктурировать это, и, пожалуйста, укажите на все, что я делаю неправильно!
спасибо ребятам