묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
$output->data 나 $output-toBool() 과 같은 것들의 정확한 사용법... 리턴값에 대해.
2013.03.24 09:32
아래에는 document 모듈에서 사용한 대략적인 모양새입니다.
executeQuery 는 한개의 데이터가 있을 때.
executeQueryArray 는 한개의 데이터가 있어도 배열로 넘겨주죠. 이건 freach 사용시 유용할 듯 하네요.
또한 executeQuery 의 경우 한개를 초과한 데이터가 있다면 배열로 넘겨줍니다.
갯수 구하는 로직의 경우 count 값을 넘겨주고.
대략적인 사용법이 이러한데... 이게 toBool() 과 함께 접목이 되면 헷갈립니다.
보통은 모델에서 리턴값을 돌려주기 전에 이러한 로직들이 있는데요,
아래를 보시면 아시겠지만 그 사용들이 제각각입니다. 정확히 어떨 때 어떤식으로 리턴값을 돌려주는 것이 올바른 방법인지에 대해서 문의 드립니다.
// $output = executeQuery('document.getDocuments', $args, $columnList);
// $document_list = $output->data;
// if(!$document_list) return;
// if(!is_array($document_list)) $document_list = array($document_list);
// if(!$output->toBool()||!count($output->data)) return $output;
// if(!$output->toBool()||!$output->data) return;
// $output = executeQuery('document.getDocumentCountByGroupStatus', $args);
// if(!$output->toBool()) return array();
// return $output->data;
// $output = executeQuery('document.getDocumentExtraVarsCount', $args);
// $total_count = $output->data->count;
// return (int)$total_count;
// $output = executeQuery('document.getMonthlyArchivedList', $args);
// if(!$output->toBool()||!$output->data) return $output;
// if(!is_array($output->data)) $output->data = array($output->data);
// return $output;
// $output = executeQueryArray('document.getAliases', $args);
// if(!$output->data) return null;
// $output = executeQueryArray('document.getHistories', $args);
// return $output;
// $output = executeQuery('document.getHistory', $args);
// return $output->data;
* 그리고 결과값이 없으면 $output->toBool() 은 true 이고 $output->data는 null 인거죠?
오류가 아니라 단지 결과값이 없을 경우에요....
* $output->toBool() 의 경우 $output 자체가 executeQuery 와 같은 것의 제대로 된 결과값 형태가 아닌(즉, Object 형태를 유지하지 못하고 있을 경우) toBool() 함수자체가 정의되지 않은 상태의 결과를 갖게 되었다면 $output->toBool() 이란 함수 자체가 오류를 내지는 않나요? toBool() 이란 함수 자체가 없으니... $output->data 야 변수형이라서 없다면 그냥 null 값이겠지만 $output->toBool() 의 경우에는 없는 함수에 접근하려고 했으니 오류를 출력할 것 같은데..
$output = executeQuery(xxx);
에서 $output 이 executeQuery 자체가 중간에 예기치 않은 오류가 나서 $output 에 error=-1 을 가진 Object 형 마저도 가지지 못한 상태라면
if($output->toBool()) 과 같은 형태의 오류 체크 자체가 오류를 낼 수 있는 상황인데
이로 인한 문제는 없을까요?
이런 경우는 발생할 일이 없는건가요?