(BugReport) Debug::consoleDump – číslo řádku a cesta k souboru
- Patrik Votoček
- Člen | 2221
Už jsem si zvyknul používat Debug::consoleDump()
je to
komfort který je skvělí. Ale jak Debug::dump()
tak
Debug::consoleDump()
májí možnost zobrazení souboru a řádku
kde byly volány (Debug::$showLocation = TRUE;
) ale zrovna dneska
když jsem to potřeboval jsem si všimnul že pokud použiju
Debug::consoleDump()
místo Debug::dump()
tak jako
soubor kde byla tato událost volána je vždy
…Nette/Debug/console.phtml a řádek 179. A tak jsem nelenil a
pokusil se o fix tady je http://uloz.to/…56/debug.zip . Co jsem upravil:
Debug.php
/**
* Dumps information about a variable in readable format.
*
* @param mixed variable to dump
* @param bool return output instead of printing it? (bypasses $productionMode)
>> * @param string file path
>> * @param int line in file
* @return mixed variable itself or dump
*/
>> public static function dump($var, $return = FALSE, $file = NULL, $line = NULL) //tady jsou navíc 2 nepovinné parametry
{
if (!$return && self::$productionMode) {
return $var;
}
$output = "<pre class=\"dump\">" . self::_dump($var, 0) . "</pre>\n";
if (self::$showLocation) {
$trace = debug_backtrace();
//>>toto celé přibilo
>> if (!empty($file) && !empty($line)) {
>> $output = substr_replace($output, ' <small>' . htmlspecialchars("in file {$file} on line {$line}", ENT_NOQUOTES) . '</small>', -8, 0);
>> } //<< a tady to končí
>> elseif (isset($trace[0]['file'], $trace[0]['line'])) { //tady se jenom if změnil na elseif
$output = substr_replace($output, ' <small>' . htmlspecialchars("in file {$trace[0]['file']} on line {$trace[0]['line']}", ENT_NOQUOTES) . '</small>', -8, 0);
}
}
if (self::$consoleMode) {
$output = htmlspecialchars_decode(strip_tags($output), ENT_NOQUOTES);
}
if ($return) {
return $output;
} else {
echo $output;
return $var;
}
}
/**
* Dumps information about a variable in Nette Debug Console.
*
* @param mixed variable to dump
* @param string optional title
* @return mixed variable itself
*/
public static function consoleDump($var, $title = NULL)
{
if (!self::$productionMode) {
//>>toto celé přibilo
>> $trace = debug_backtrace();
>> if (isset($trace[0]['file'], $trace[0]['line'])) {
>> self::$consoleData[] = array('title' => $title, 'var' => $var, 'file' => $trace[0]['file'], 'line' => $trace[0]['line']);
>> }
>> else //<<tady to končí
self::$consoleData[] = array('title' => $title, 'var' => $var); //původně tu byl pouze tento řádek
}
return $var;
}
a console.phtml tam jenom za řádek 176 přibyl další:
<?php $file = $line = NULL; if (isset($item['file']) && isset($item['line'])) { $file = $item['file']; $line = $item['line']; } ?>
a původně 179 řádek (nyní 180) vypadal:
<td><?php echo preg_replace_callback('#(<pre class="dump">|\s+)?(.*)\((\d+)\) <code>#', '_netteDumpCb2', Debug::dump($val, TRUE) ?></td>
a nyní vypadá:
<td><?php echo preg_replace_callback('#(<pre class="dump">|\s+)?(.*)\((\d+)\) <code>#', '_netteDumpCb2', Debug::dump($val, TRUE, $file, $line)) ?></td>
Celé se to vztahuje k revizi 475.
- Patrik Votoček
- Člen | 2221
Tak po domuvě včera na webexpu připomínám tohle asi zapadlé vlákno a přidávám patch http://saddam.vrtak-cz.net/…leDump.patch
A magická slova na konec
řešit DG