两种都一样的能实现,哪种更为合理?

浏览:393 发布日期:2018/11/26 分类:求助交流 关键字: return exit
//下面代码中,login为主方法,用户请求登录的方法
checkLoginA与checkLoginB是被login调用的方法,两个检测方法最终都是一样的效果,调用一个就可以,不同的是checkLoginA采用了return数组的方式,把错误信息传回传给了login主方法去处理,login再调用了retError输出错误给客户端,而checkLoginB是直接调用了输入错误的方法retError输出错误,这两种方式,哪种更为合理一点,大家都习惯那种方式?public function login(){
        $postData = $this->request->param();
        //调用方式1
        $result = $this->checkLoginA($data);
        //调用方式2
        //$result = $this->checkLoginB($postData);
        if($result['errorCode']!=200){
            $this->retError($result['errorCode'],$result['message']);
        }else{
            $this->retSuccess($result);
        }
    }
    
    
    
    //方式1   return错误信息回到login
    private function checkLoginA($data):array{
        try {
            $checkResult = $this->validate($data,'Login');
            if(true !== $checkResult){
                $result = [];
                $result['errorCode'] = 422;
                $result['message'] = $checkResult;
                // 验证失败 返回错误信息,这里是return错误的数组,不是直接调用输出json错误的方法输出错误
                return $result;
            }
            $loginInfo = $this->checkPwd($data);//去检测密码
            if($loginInfo['errorCode']===200){
                return $loginInfo;  //$loginInfo里面有errorCode,messgae,data信息
            }else{
                $result['errorCode'] = 422;
                $result['message'] = $loginInfo['message'];
                return $result;
            }
            
        } catch (Exception $e) {
            $result['errorCode'] = 500;
            $result['message'] = $e->getMessage();
            return $result;
        }
    }
    
    
    //方式2   直接调用retError输出json格式的错误信息
    private function checkLoginB($data){
        try {
            $checkResult = $this->validate($data,'Login');
            if(true !== $checkResult){
                // 验证失败 直接输出错误信息
                $this->retError(422,$checkResult);
            }
            $loginInfo = $this->checkPwd($postData);//去检测密码
            if($loginInfo['errorCode']===200){
                //成功//$loginInfo里面有errorCode,messgae,data信息
                return $loginInfo;
            }else{
                //失败
                $this->retError($loginInfo['errorCode'],$loginInfo['message']);
            }
            
        } catch (Exception $e) {
            $this->retError(500,$e->getMessage());
        }
    }
    
    
    //输出成功信息给给客户端
    public function retSuccess(array $data){
        http_response_code(200);
        exit(json_encode($data));
    }
    
    
    //输出失败的json信息给客户端
    public function retError(int $errorCode,string $message){
        http_response_code($errorCode);
        $result['errorCode'] = $errorCode;
        $result['message'] = $message;
        $result['data'] = [];
        exit(json_encode($result));
    }
最佳答案
评论( 相关
后面还有条评论,点击查看>>