Esempio n. 1
0
/**
 *
 * Выводит кусок исходных кодов из файла вызвавшего функцию
 * @param int $fromErrorHandler устанавливайте значение данной переменной, только если она вызывается из промежуточной функции (например перехватчика ошибок)
 */
function displayCallerCode($fromErrorHandler = 0, $output = true)
{
    // Отображаем блок текста
    $trace = debug_backtrace();
    $caller = $trace[0 + $fromErrorHandler];
    $result = '';
    if (!isset($caller['file'])) {
        if (isset($trace[0 + $fromErrorHandler + 1])) {
            $caller = $trace[0 + $fromErrorHandler + 1];
        }
    }
    if (isset($caller['file'])) {
        $result = Debug::getFileSource($caller['file'], $caller['line']);
    } else {
        $result = '<hr/> <h2>Empty error source</h2> <hr/>';
    }
    if ($output) {
        print $result;
    }
    return $result;
}