2016-06-29 3 views
1

PHP 5.6에서 Active Collab 5.8.7을 실행하고 있습니다. 회사 및 사용자를 생성하기 위해 API를 사용하고 있습니다. API는 작동하지만 오류가있는 경우 호출하는 PHP 스크립트에 오류가 표시되지 않습니다. 나는 here의 접근법을 사용하고있다. 내가 오류를 잡을 수활성 Collab API 예외 처리

try { 
    $client->post('projects/65/tasks', [ 
     'name' => 'This is a task name', 
     'assignee_id' => 48 
    ]); 
} catch(AppException $e) { 
    print $e->getMessage() . '<br><br>'; 
    // var_dump($e->getServerResponse()); (need more info?) 
} 

유일한 방법은 활성 y 업 config.php에서 디버깅을 켜고 로그 파일을 보는 것입니다. 예를 들어 위의 예에서 task_list_id은 누락되었지만 필수 항목입니다. 나는 로그를 들여다보기 전까지는 그것을 파악하지 못했습니다. 그 오류가 거품을 내며 스크립트에서 잡을 수 있기를 기대합니다.

이 오류를 일으키는 방법을 아는 사람이 있습니까?

답변

0

Active Collab은 프로덕션 모드에서 실행할 때 정보를 디버깅하는 데 매우 "비밀 스럽습니다". 정확한 오류를 기록하려면 디버깅 모드를 사용하십시오.

디버그 모드를 켜려면, 개방 활성 y 업의 config/config.php 및 추가 :

const APPLICATION_MODE = 'debug'; 

을 다른 설정이 정의 된 블록에서. 경우에 따라 APPLICATION_MODE 상수가 config/config.php에 이미 정의되어있을 수 있으므로 먼저 찾으십시오.

+0

예 디버깅을 사용하도록 설정하면 로그 파일에 오류가 표시됩니다. 내 질문에 왜 API가 로그에 오류가있을 때 예외를 발생시키지 않는가? 예외가 발생하지 않으면 try/catch 문을 사용하여 데모의 목적은 무엇입니까? 중복 된 회사 이름으로 동일한 작업을 시도했지만 API 호출이 자동으로 실패했습니다. –

+0

Active Collab이 디버그 모드에 있으면 JSON 500 응답을 예외 세부 사항으로 확장해야합니다. 언급 한 정확한 오류는 https://github.com/activecollab/taskform (아직 완료되지 않음)에서 작업하는 동안 발견 한 것으로, 응답에서 찾았습니다 (로그를 통과 한 기억이 없습니다). 요청이 거절 된 이유를 찾으십시오). – Ilija