Я работаю на новом сервере с 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();
Есть ли способ отключить трассировку стека?
Ключ здесь 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();
}
Других решений пока нет …