Класс регистрации пользователя

Я пишу это на PHP, но, вообще говоря, какие методы и свойства будут иметь класс пользователя (регистрация?)? Я знаю, что я могу использовать MDB2 из PEAR для абстракции базы данных, и одна из возможностей, о которой я могу думать, – убедиться, что имя пользователя действительно.

$user->validateUserName($username, $regex); 

Может ли кто-нибудь еще подумать?

Благодарю.

Изменить :

Проверка имени была бы классом по своему усмотрению (класс Validator или что-то еще)?

Не должно быть такого класса вообще. Регистрация – это целый процесс получения данных, проверки этих данных и, наконец, обработки проверенных данных, если проверка прошла успешно. Другими словами: регистрация – это часть кода, которая использует некоторый объект для решения данной проблемы.

Что вам нужно?

  1. Объект, представляющий одного пользователя.
  2. Объект, который принимает объект User и сохраняет его.
  3. Некоторый механизм проверки (он будет использовать как минимум несколько объектов).

Давайте разработаем интерфейс. Как мы будем использовать код, который мы собираемся написать?

 try { $validator = new Validator($_POST); $validator->addRules(array( 'username' => new LengthValidator(array('min' => 3, 'max' => 15)), 'password' => array( new LengthValidator(array('min' => 6)) new RegexpValidator(array('pattern' => '#...#')) ), 'email' => array( new EmailValidator(), new UniqueValidator(....) ) )); $data = $validator->validate(); $userService = new UserService($databaseHandler, $someOtherArguments); $user = new User(); $user->setUsername($data['username']); $user->setPassword($data['password']); $user->setEmail($data['email']); $user->setFirstname($data['firstname']); $user->setLastname($data['lastname']); $userService->save($user); } catch (ValidationException $ve) { // validation failed } 

Это, конечно, только пример – он может быть разработан совершенно по-другому.

Ну, вы должны проверить, если

  • Имя пользователя уже используется
  • Пароль достаточно силен
  • Почтовый адрес пользователя действителен

Вам также нужны методы для

  • создать новый аккаунт
  • изменение данных пользователя
  • удалить существующую учетную запись?
  • разрешить пользователям восстанавливать забытые pws

ValidForm, это отличный класс, структурированный для обработки ваших форм, как клиентских, так и серверных. Тем не менее, MySQL не проходит через форму.