имя файла и строка вызова в PHP
Может кто знает возможно ли определить имя файла и строку в которой произведен вызов функции без явного их указания ?
Зачем: усовершенствую класс работы с базами данных и это надо для отладки. писать в каком файле и и строке был произведен запрос в случае ошибки. Сейчас делаю так: $db->q($query,__FILE__,__LINE__); Как можно автоматизировать? Гугл не помогает, отсылает не туда =( |
debug_backtrace предоставляет широкие возможности отладки.
Вот как я делаю в своем самописном дебагере.: static function dbg(&$what, $name='Unknown', $pometka = '') { static $num = 0; ++$num; $inf = debug_backtrace(); try { $str = self::$str_shab; // произвести замены в шаблоне вывода логов $str = str_replace('(num)',strval($num),$str); $str = str_replace('(file)',strval($inf[0]['file']),$str); $str = str_replace('(line)',strval($inf[0]['line']),$str); $vsp = (!empty($inf[1]['function'])) ? $inf[1]['function'] : ''; $str = str_replace('(func)',strval($vsp),$str); $vsp = (!empty($inf[1]['type'])) ? $inf[1]['type'] : ''; $str = str_replace('(type)',strval($vsp),$str); $str = str_replace('(name)',strval($name),$str); $str = str_replace('(nametype)',strval(gettype($what)),$str); $str = str_replace('(val)',self::vivData($what),$str); $str = str_replace('(pometka)',strval($pometka),$str); self::$mas_str[] = $str; } catch (Exception $ex) { self::$mas_errors[] = $ex->getMessage() . '| file:' . $ex->getFile() . '| line:' . $ex->getLine(); } } Заметь $inf[0], $inf[1], ... - обращение к разным уровням вложенности функций. |
Цитата:
|
PeaceCoder, а каким ты пошаговым отладчиком пользуешься в php?
|
Цитата:
|
хм
товарищи модераторы, а может быть поделитесь из каких соображений было удалено мое краткое, но весьма по сути сообщение? вот уж ничего не ожидал Цитата:
|
Часовой пояс GMT +3, время: 05:22. |