обработка ошибок — Скрыть трассировку стека в PHP 7.1 (Xdebug НЕ установлен)

Я работаю на новом сервере с PHP 7.1 и Apache 2.4, и я получаю Трассировки стека, что затрудняет просмотр файла, в котором находится ошибка.

Когда я ищу эту проблему, я нахожу только комментарии о 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

Я ценю их иногда, но я хотел бы отключить их как обычно, и просто включить, когда мне это нужно. То, что я ожидаю, это простое сообщение об ошибке PHP:

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

Пример кода с классом:

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

Test::testing();

То же самое происходит без классов:

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

testing();

Есть ли способ отключить трассировку стека?

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]