Я столкнулся с глупой, но все еще существенной проблемой.Я создаю проверку для страницы, подобной "Зарегистрироваться".Мне нужно убедиться, что введенные значения не вредны и соответствуют моим потребностям.Благодаря Fuel Framework это достаточно просто.Далее ... Мне нужно также проверить, что имя пользователя или адрес электронной почты еще не заняты.Я написал методы, которые делают эту работу.Но моя проблема возникает, когда мне нужно написать все «если утверждения».
Это то, что у меня есть прямо сейчас.Я не уверен, что это правильный путь.Я мог бы написать все это с «если» и множеством уровней (я думаю, вложенность).Я мог бы использовать "если / еще .. если" там.Что бы вы использовали?
if ( $validation->run() === true ) {
if ( Diesel::usernameExists( $username ) === false ) {
$error = 'This username is already taken! Try again...';
}
if ( Diesel::emailExists( $email ) === false ) {
$error = 'This e-mail is already taken! Try again...';
}
if ( !isSet( $error ) ) {
Diesel::signUp( $username, sha1( $password ), $email );
Session::set_flash( 'notification', 'You have been successfully signed-up! Thanks...' );
Session::set_flash( 'location', 'sign-in' );
$this->response->redirect( 'notification' );
}
} else {
Session::set_flash( 'error', 'There was something wrong with validation! Try again...' );
$this->response->redirect( 'sign-up' );
}
Другими словами, моя цель состоит в том, чтобы:
1) убедиться, что введенный контент не вреден и соответствует моим потребностям ($validation->run()
),
2) Шаг за шагом ... имя пользователя еще не занято (usernameExists()
)?
3) Не занято ли уже электронное письмо (emailExists()
)?
4) Может быть больше ...
Приложению не нужно переходить к шагу # 2, если шаг # 1, например, ложен.После этого мне нужно иметь строку, содержащую сообщение об ошибке, но, вы знаете, сообщение каждого шага отличается.Тогда я мог бы передать сообщение, чтобы отобразить его (если есть сообщение)!Конечно, я могу написать код, который работает, но я ищу лучшие практики ... и я должен следовать принципам СУХОЙ (не повторяйся) и KISS (не усложняй, глупый!), Чтобы сохранить мой кодудобочитаемым и легким для понимания и поддержки.