如何简化PHP中的检查/验证逻辑?


How can I simplify the checking/validating logic in PHP?

下面是如何基于电子邮件、会话密钥和消息编写程序的示例代码。我在错误处理中使用了大部分代码,像这样:

首先,我需要检查null,然后检查长度、会话、与db的连接,最后检查实际结果.... ....它很容易被忽略,而且代码变得很长,我该如何简化它?谢谢你。

if(checkNullExisit($aEmail, $aSessionKey, $aMessage)){    
    //Null params detect
    return;
}  
if(strlen($aEmail) > MAX_EMAIL || strlen($aSessionKey) > MAX_SESSIONKEY ||  strlen($aMessage) > MAX_MESSAGE){
    //Too long
    return;
}      
 if(isSessionValid($aEmail, $aSessionKey)){                   
    if(connectDatabase()){ 
        if(DBManagerSingleton::saveMessage($aEmail, $aSessionKey, $aMessage, NULL)){
            //The ONLY Success Case
            return;
        }else{
            //Can't write in DB
            return;
        }
    }else{
       //DB Cannot Connect   
       return;
    }
 }else{
      //Invalid Session     
      return;
 }

如果你想缩短你的验证和数据库连接,我认为你有两种主要的方法。

  • Procedural:为这些东西编写函数。例如,你可以使用valid_email()函数。
  • OOP:使用OOP来创建你需要的类,例如表单验证类

我能感受到你的痛苦,验证是一个PITA,使用框架或独立库,如Respect或Phorms可能会缓解你的痛苦…