Я пишу это на PHP, но, вообще говоря, какие методы и свойства будут иметь класс пользователя (регистрация?)? Я знаю, что я могу использовать MDB2 из PEAR для абстракции базы данных, и одна из возможностей, о которой я могу думать, – убедиться, что имя пользователя действительно.
$user->validateUserName($username, $regex);
Может ли кто-нибудь еще подумать?
Благодарю.
Изменить :
Проверка имени была бы классом по своему усмотрению (класс Validator или что-то еще)?
Не должно быть такого класса вообще. Регистрация – это целый процесс получения данных, проверки этих данных и, наконец, обработки проверенных данных, если проверка прошла успешно. Другими словами: регистрация – это часть кода, которая использует некоторый объект для решения данной проблемы.
Что вам нужно?
User
и сохраняет его. Давайте разработаем интерфейс. Как мы будем использовать код, который мы собираемся написать?
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 }
Это, конечно, только пример – он может быть разработан совершенно по-другому.
Ну, вы должны проверить, если
Вам также нужны методы для
ValidForm, это отличный класс, структурированный для обработки ваших форм, как клиентских, так и серверных. Тем не менее, MySQL не проходит через форму.