2010-04-21 2 views
1

PHP에서는 오브젝트를 인스턴스화하는 스크립트의 파일 이름을 가져올 수 있습니까?오브젝트를 인스턴스화하는 스크립트의 파일 이름

예를 들어 Class 클래스의 새 인스턴스를 만드는 file.php라는 스크립트가 있습니다. 이 클래스에는 트리거 될 때 오류 정보를 반환하는 Error 객체가 있습니다. file.php가 오류를 일으킨 것을 보여주고 싶습니다.

답변

2

debug_backtrace() 기능을 사용하고 계신가요? 실행 흐름을 아래에서 위로 보여줍니다.

+0

클래스의 생성자 내에서 오류가 발생하는 경우에만 작동합니다. 어쩌면 그것이 그가 원하는 것 일지 모르겠습니다. – Savageman

+0

고마워, 정확히 내가 무엇을 찾고 있었는지! – Calvin

+0

@Savageman, 네, 그게 어디에서 방아쇠를 당길 지 알지만, 너무 아는 기분입니다. – Calvin

1

error_get_last의 반환 된 배열이 사용자의 필요를 충족시킬 가능성이 있습니까? 이 함수는 키 "type", "message", "file"및 "line"으로 마지막 오류를 설명하는 연관 배열을 반환합니다. 오류가 아직 없으면 NULL을 반환합니다. '

http://www.php.net/manual/en/function.error-get-last.php

+0

PHP 오류가 아닌 커스텀 오류 리포터이지만 그 기능에 대해서도 감사드립니다. – Calvin

2

카이 Sellgren는 debug_backtrace() 기능을 사용할 수 있고, 상기 된 바와 같이. 예외를 throw하고 catch하여 역 추적을 얻을 수도 있습니다.

try 
{ 
    throw new Exception(); 
} 
catch(Exception $e) 
{ 
    print_r($e->getTrace()); 
} 

백 트레이스를 가져 오는 데 시간이 오래 걸릴 수 있으므로 두 솔루션을 벤치마킹하여 가장 빠른 것을 찾아야합니다.

그런데 오류 객체는 예외의 하위 클래스가 아닙니다. 그것이 예외가 존재하는 이유입니다 ...