2017-11-02 19 views
0

PHP 7.1과 Apache 2.4를 사용하는 새로운 서버에서 작업 중이며 스택 추적을 사용하면 오류가 발생한 파일을 더 쉽게 확인할 수 있습니다. 에. 내가이 문제를 검색PHP 7.1에서 스택 추적 숨기기 (Xdebug가 설치되지 않음)

, 난 단지 Xdebug는 대한 의견을 발견하고,이를 생성하는,하지만이 서버 는 Xdebug는이 설치 또는 어딘가에 숨겨진 PHP 7에 내장하지 않는을 활성화하지 않습니다.

Fatal error: Uncaught ArgumentCountError: Too few arguments to function Test::testing(), 
0 passed in /var/www/vhosts/test.com/httpdocs/test.php on line 15 and exactly 1 
expected in /var/www/vhosts/test.com/httpdocs/test.php:7 
Stack trace: 
#0 /var/www/vhosts/test.com/httpdocs/test.php(15): Test::testing() 
#1 {main} 
    thrown in /var/www/vhosts/test.com/httpdocs/test.php on line 7 

은 가끔 그들에게 고맙지 만 나는 일반적으로 비활성화하고 싶은, 내가 그것을 필요로 할 때 그냥 수 있습니다.

class Test 
{ 
    public static function testing($var) 
    { 
     echo "tet"; 
    } 
} 

Test::testing(); 

같은 일 수업없이 발생합니다 : 클래스와

Parse error: syntax error, unexpected end of file in 
/var/www/vhosts/test.com/httpdocs/test.php on line 51 

예제 코드 :

function testing($var) { 
    echo "tet"; 
} 

testing(); 

방법에가 내가 기대하는 것은 간단한 PHP 오류 메시지입니다 스택 추적을 비활성화 하시겠습니까?

답변

0

여기서 핵심은 Uncaught 부분이다 : 당신이 그것을 잡을 경우

Fatal error: Uncaught ArgumentCountError 

, 당신은 당신이 원하는대로 표시 할 수 있습니다. 따라서 코드를 모두 래핑 할 수 있습니다 :

try { 
    // your code 
} catch (Throwable $e) { 
    echo $e->getMessage() . " in\n"; 
    echo $e->getFile() . ' on line ' . $e->getLine() . "\n"; 
    // echo $e->getTraceAsString(); 
} 
+0

PHP 7.1의 새로운 기능입니까? 이것은 내가 작업중인 앱의 모든 코드에 대해 일반적이며, 인덱스의 맨 아래에 시도해보고 끝내지 않으면 try/catch 문을 넣는 코드가 많이 있습니다. 스택 추적을 비활성화하는 방법이 없습니까? – Niclas

+0

@Niclas'try' -'catch'에서'index.php'를 감쌀 것입니다, 그것은 커스텀 에러 핸들러를 설정하는 것보다 훨씬 쉽습니다. 하지만 스택 추적을 줄이려고 시도한 적이 없으며, 모두 (개발) 또는 전혀 다른 (라이브) 무언가를 원합니다. – jeroen