mirror of
https://github.com/maximebf/php-debugbar.git
synced 2025-07-25 10:41:55 +02:00
Show file and line on messages (#576)
This commit is contained in:
@@ -33,6 +33,9 @@ class MessagesCollector extends AbstractLogger implements DataCollectorInterface
|
||||
// may support yet - so return false by default for now.
|
||||
protected $useHtmlVarDumper = false;
|
||||
|
||||
/** @var bool */
|
||||
protected $collectFile = false;
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*/
|
||||
@@ -41,6 +44,12 @@ class MessagesCollector extends AbstractLogger implements DataCollectorInterface
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
public function collectFileTrace($enabled = true)
|
||||
{
|
||||
$this->collectFile = $enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the data formater instance used by this collector
|
||||
*
|
||||
@@ -134,13 +143,35 @@ class MessagesCollector extends AbstractLogger implements DataCollectorInterface
|
||||
}
|
||||
$isString = false;
|
||||
}
|
||||
$this->messages[] = array(
|
||||
|
||||
$stackItem = [];
|
||||
if ($this->collectFile) {
|
||||
$stacktrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 5);
|
||||
$stackItem = $stacktrace[0];
|
||||
foreach ($stacktrace as $trace) {
|
||||
if (strpos($trace['file'], '/vendor/') !== false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$stackItem = $trace;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($stackItem)) {
|
||||
$stackItem = [
|
||||
'file_name' => $stackItem['file'],
|
||||
'file_line' => $stackItem['line'],
|
||||
];
|
||||
}
|
||||
|
||||
$this->messages[] = array_merge(array(
|
||||
'message' => $messageText,
|
||||
'message_html' => $messageHtml,
|
||||
'is_string' => $isString,
|
||||
'label' => $label,
|
||||
'time' => microtime(true)
|
||||
);
|
||||
), $stackItem);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -150,6 +181,10 @@ class MessagesCollector extends AbstractLogger implements DataCollectorInterface
|
||||
*/
|
||||
public function aggregate(MessagesAggregateInterface $messages)
|
||||
{
|
||||
if ($this->collectFile && method_exists($messages, 'collectFileTrace')) {
|
||||
$messages->collectFileTrace();
|
||||
}
|
||||
|
||||
$this->aggregates[] = $messages;
|
||||
}
|
||||
|
||||
|
@@ -99,6 +99,18 @@ div.phpdebugbar-widgets-messages {
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
}
|
||||
div.phpdebugbar-widgets-messages li .phpdebugbar-widgets-label-called-from {
|
||||
float: right;
|
||||
color: #666;
|
||||
padding-left: 5px;
|
||||
border-bottom: 1px dotted #666;
|
||||
}
|
||||
div.phpdebugbar-widgets-messages li .phpdebugbar-widgets-label-called-from:before {
|
||||
content: "\f08d";
|
||||
font-family: PhpDebugbarFontAwesome;
|
||||
margin-right: 4px;
|
||||
font-size: 12px;
|
||||
}
|
||||
div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar input {
|
||||
border: 0;
|
||||
|
@@ -327,7 +327,11 @@ if (typeof(PhpDebugBar) == 'undefined') {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (value.file_name) {
|
||||
$('<span />').addClass(csscls('label-called-from')).attr('title', value.file_name)
|
||||
.text(value.file_name + ':' + value.file_line)
|
||||
.prependTo(li);
|
||||
}
|
||||
if (value.collector) {
|
||||
$('<span />').addClass(csscls('collector')).text(value.collector).prependTo(li);
|
||||
}
|
||||
|
Reference in New Issue
Block a user