Структура для обработки ошибок

У меня есть скрипт, который запускает кучу заданий и проверок, и когда все проходит, он вставляет и возвращает json в ajax-скрипт.

Теперь мой сценарий примерно такой

$response = "";
if (isset($_POST['upload'])){// some basic data// prevent duplicates
if($check_duplicates){

// create json error
$helper->error_duplicate($name);
}// some more data// run validation
$validation = $helper->validate_form();

// create json error if fails
if($!$validation){
$helper->error_validation();
}

// validate file
$valid_file = $helper->validate_file();

// create json error if fails
if($!$valid_file){
$helper->error_valid_file();
}// more data//execute the insert
$insert_db = $database->execute_statement($insert_array,$file_name,$cleanup=true);

// check if insert was successful
if(!$insert_db){
$response= array(
"result" => "Failure",
"title" => "Database Error",
"message" => "There was an error with the insert");
echo (json_encode($response));
}

if($response == ""){
$response= array(
"result" => "Success",
"title" => "Successful Insert",
"message" => "The insert was successful");
echo (json_encode($response));
}
}else{
$response= array(
"result" => "Failure",
"title" => "No Access Allow",
"message" => "This page is restricted");
echo (json_encode($response));
}

Теперь, если одна из более ранних проверок завершится неудачей, нет необходимости продолжать работу с остальной частью проверки и вставкой, но будет очень грязно иметь так много вложенных if. Я уверен, что это обычная ситуация, но я не уверен, что лучший способ справиться с этим. Есть у кого-нибудь какие-либо предложения или есть лучший способ отформатировать это.

0

Решение

if (!$check_duplicates) $helper->error_duplicate($name);
elseif (!$validation = $helper->validate_form()) $helper->error_validation();
elseif (!$valid_file = $helper->validate_file()) $helper->error_valid_file();
elseif (!$insert_db = $database->execute_statement($insert_array,$file_name,$cleanup=true))
echo json_encode(array(
"result" => "Failure",
"title" => "Database Error",
"message" => "There was an error with the insert"));
else
echo json_encode(array(
"result" => "Success",
"title" => "Successful Insert",
"message" => "The insert was successful"));
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]