2013-02-22 3 views
3

나는 오류 처리의 동작을 사용자 정의 할 수 있도록 PHP의 set_error_handler(brodeur)을 사용하고 있습니다.페이지 하단의 PHP 오류 처리 및 표시

이제는 디스플레이 위치/출력 위치를 사용자 정의하고자합니다. 현재 예상대로 PHP 코드가 마크 업 내에있는 경우 오류가 표시됩니다.

페이지 콘텐츠의 CSS/레이아웃을 방해하지 않도록 출력물을 페이지의 맨 아래 또는 맨 위에 표시하고 싶습니다.

내 문제는 내가 그 <HTML>...</HTML> 내용을 제공, 다음 set_error_handler(brodeur) 코드를 정의, 내 코드에서 먼저 브로 함수를 선언한다는 것입니다.

내 페이지 (또는 맨 아래)의 맨 아래에 DIV 래퍼를 만든 경우 해당 오류 문자열을 해당 DIV 내에 배치하는 가장 좋은 방법은 무엇이 될까요? 그렇게 할 PHP 코드는 DIV 내에 위치하지 않습니다. ? 또는 내가 놓치고있는 대안이 있습니까?

+0

IMO이 아닌 문제 :

그 방법에 대해하지 않을 경우, 비록 당신이 오류를 처리하는 PHP의 시도 및 캐치 기능을 사용하고 싶습니다. 오류 로그에서 오류를 처리해야합니다. UI를 통해 오류를 표시하는 것은 좋지 않은 방법입니다. –

+0

@MikePurcell 웹 사이트가 프로덕션에서 실행되지 않는 한 동의하지 않습니다. –

+0

@ExplosionPills : 개발자가 오류를 출력하는 것이 좋은 것이라면 확인해 보니 문제가 없는지 즉시 알 수 있습니다. 이를 위해 항상 xdebug를 사용하여 오류가 발생한 곳을 알려줍니다. –

답변

3

여러 가지 방법이 있습니다. 이상적으로, 당신은 이미 실제 코드에서 뷰/템플릿을 분리하고 있습니다. 그렇다면 오류를 배열로 설정하여 템플릿에 전달한 다음 원하는 위치에 배치 할 수 있습니다.

$errors = array(); 
try { 
// do all your code here 
} 
catch(Exception $e) 
{ 
    // do whatever you want with the error 
    // my example is pushing it into an errors array.. 
    array_push($errors,$e->getMessage()); 
} 
// now do whatever you want with $errors when you're ready.. 
+2

+1을 주셔서 감사합니다. try/catch를 사용하면 PHP는 실제로 어떤 오류가 잡힐 까봐 까다 롭다는 것을 알고 있어야합니다. –

+0

Bah, 나는 그것을 저장하는 것을 완전히 간과했다. 잠시 후 받아 들일 것입니다 - 고맙습니다. –