如何编写可读的if语句进行输入验证?
|
我遇到了愚蠢但仍然很严重的问题。我正在为类似“注册”的页面创建验证。我需要检查输入的值是否无害并且符合我的需求。借助Fuel框架,它非常容易。接下来...我还需要检查用户名或电子邮件是否尚未被使用。我已经写了完成这项工作的方法。但是,当我需要编写所有“ if语句”时,就会出现问题。
这正是我现在所拥有的。我不确定这是正确的方法。我可以用\“ if \'s \”和很多级别来写(我猜是嵌套)。我可以在那里使用\“ if / else..if \”。你会用什么?
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)可能还有更多...
例如,如果步骤#1为假,则应用程序无需继续执行步骤2。之后,我需要包含错误消息的字符串,但是,您知道,每个步骤的消息都是不同的。然后,我可以传递消息以显示它(如果有消息)!当然,我可以编写有效的代码,但是我正在寻找最佳实践……并且我必须遵循DRY(不要重复自己)和KISS(保持简单,愚蠢!)原则。我的代码可读性强,易于理解和维护。
没有找到相关结果
已邀请:
2 个回复
犯痪桂涛杭
驮帽俺篮号
添加任何类,当前控制器或模型,其中
既可以是类名也可以是对象实例)