отладка — есть ли способ перенести магическую константу PHP как функцию по умолчанию?

Идея здесь состоит в том, чтобы создать метод для целей регистрации и отладки, который не требует передачи указанному методу связанных «магических констант».

По сути, я пытаюсь добиться этого с помощью определения метода, например, так:

function Debug($Message,$File=__FILE__,$Line=__LINE__)
{
...
}

Проблема, с которой я сталкиваюсь, заключается в том, что если я определяю вышеупомянутый метод в файле, отличном от того, который я «отлаживаю», я получаю файл и строку из файла, в котором определен метод, а не тот, который я я отлаживаю.

Рассмотрим следующий набор файлов:

Debugging.php

<?
function Debug($Message,$File=__FILE__,$Line=__LINE__)
{
echo("$File ( $Line ) :: $Message");
}
?>

Testing.php

<?
Debug("Some message");
?>

Выход:

Debugging.php ( 1 ) :: Some message

Когда вызов сообщения произошел во втором файле — что, как должно быть понятно в этом пункте, не является предполагаемой реализацией. Конечно, я мог бы передать метод «Debug» этим магическим константам во время вызова, но я стараюсь по возможности устранить ненужный код.

0

Решение

Вы бы использовали функцию debug_backtrace вот так.

function Debug($Message)
{
$backtrace =  debug_backtrace();
echo($backtrace[0]['file'] .'(' . $backtrace[0]['line']  . ') :: ' . $Message);
}
0

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

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

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