composer update
This commit is contained in:
8
vendor/filp/whoops/CHANGELOG.md
vendored
8
vendor/filp/whoops/CHANGELOG.md
vendored
@@ -1,3 +1,11 @@
|
||||
# 2.3.1
|
||||
|
||||
* Prevent exception in Whoops when caught exception frame is not related to real file
|
||||
|
||||
# 2.3.0
|
||||
|
||||
* Show previous exception messages.
|
||||
|
||||
# 2.2.0
|
||||
|
||||
* Support PHP 7.2
|
||||
|
||||
@@ -112,15 +112,10 @@ class Frame implements Serializable
|
||||
public function getFileContents()
|
||||
{
|
||||
if ($this->fileContentsCache === null && $filePath = $this->getFile()) {
|
||||
// Leave the stage early when 'Unknown' is passed
|
||||
// Leave the stage early when 'Unknown' or '[internal]' is passed
|
||||
// this would otherwise raise an exception when
|
||||
// open_basedir is enabled.
|
||||
if ($filePath === "Unknown") {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Return null if the file doesn't actually exist.
|
||||
if (!is_file($filePath)) {
|
||||
if ($filePath === "Unknown" || $filePath === '[internal]') {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,11 @@ class Inspector
|
||||
*/
|
||||
private $previousExceptionInspector;
|
||||
|
||||
/**
|
||||
* @var \Throwable[]
|
||||
*/
|
||||
private $previousExceptions;
|
||||
|
||||
/**
|
||||
* @param \Throwable $exception The exception to inspect
|
||||
*/
|
||||
@@ -57,6 +62,28 @@ class Inspector
|
||||
return $this->extractDocrefUrl($this->exception->getMessage())['message'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
*/
|
||||
public function getPreviousExceptionMessages()
|
||||
{
|
||||
return array_map(function ($prev) {
|
||||
/** @var \Throwable $prev */
|
||||
return $this->extractDocrefUrl($prev->getMessage())['message'];
|
||||
}, $this->getPreviousExceptions());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int[]
|
||||
*/
|
||||
public function getPreviousExceptionCodes()
|
||||
{
|
||||
return array_map(function ($prev) {
|
||||
/** @var \Throwable $prev */
|
||||
return $prev->getCode();
|
||||
}, $this->getPreviousExceptions());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a url to the php-manual related to the underlying error - when available.
|
||||
*
|
||||
@@ -117,6 +144,26 @@ class Inspector
|
||||
return $this->previousExceptionInspector;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns an array of all previous exceptions for this inspector's exception
|
||||
* @return \Throwable[]
|
||||
*/
|
||||
public function getPreviousExceptions()
|
||||
{
|
||||
if ($this->previousExceptions === null) {
|
||||
$this->previousExceptions = [];
|
||||
|
||||
$prev = $this->exception->getPrevious();
|
||||
while ($prev !== null) {
|
||||
$this->previousExceptions[] = $prev;
|
||||
$prev = $prev->getPrevious();
|
||||
}
|
||||
}
|
||||
|
||||
return $this->previousExceptions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an iterator for the inspected exception's
|
||||
* frames.
|
||||
@@ -188,7 +235,7 @@ class Inspector
|
||||
*
|
||||
* If xdebug is installed
|
||||
*
|
||||
* @param \Throwable $exception
|
||||
* @param \Throwable $e
|
||||
* @return array
|
||||
*/
|
||||
protected function getTrace($e)
|
||||
|
||||
@@ -205,16 +205,18 @@ class PrettyPageHandler extends Handler
|
||||
"frame_code" => $this->getResource("views/frame_code.html.php"),
|
||||
"env_details" => $this->getResource("views/env_details.html.php"),
|
||||
|
||||
"title" => $this->getPageTitle(),
|
||||
"name" => explode("\\", $inspector->getExceptionName()),
|
||||
"message" => $inspector->getExceptionMessage(),
|
||||
"docref_url" => $inspector->getExceptionDocrefUrl(),
|
||||
"code" => $code,
|
||||
"plain_exception" => Formatter::formatExceptionPlain($inspector),
|
||||
"frames" => $frames,
|
||||
"has_frames" => !!count($frames),
|
||||
"handler" => $this,
|
||||
"handlers" => $this->getRun()->getHandlers(),
|
||||
"title" => $this->getPageTitle(),
|
||||
"name" => explode("\\", $inspector->getExceptionName()),
|
||||
"message" => $inspector->getExceptionMessage(),
|
||||
"previousMessages" => $inspector->getPreviousExceptionMessages(),
|
||||
"docref_url" => $inspector->getExceptionDocrefUrl(),
|
||||
"code" => $code,
|
||||
"previousCodes" => $inspector->getPreviousExceptionCodes(),
|
||||
"plain_exception" => Formatter::formatExceptionPlain($inspector),
|
||||
"frames" => $frames,
|
||||
"has_frames" => !!count($frames),
|
||||
"handler" => $this,
|
||||
"handlers" => $this->getRun()->getHandlers(),
|
||||
|
||||
"active_frames_tab" => count($frames) && $frames->offsetGet(0)->isApplication() ? 'application' : 'all',
|
||||
"has_frames_tabs" => $this->getApplicationPaths(),
|
||||
|
||||
@@ -52,7 +52,7 @@ header {
|
||||
color: #bebebe;
|
||||
font-size: 14px;
|
||||
}
|
||||
.exc-title-primary {
|
||||
.exc-title-primary, .exc-title-secondary {
|
||||
color: #e95353;
|
||||
}
|
||||
|
||||
@@ -70,6 +70,25 @@ header {
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.prev-exc-title {
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.prev-exc-title + ul {
|
||||
margin: 0;
|
||||
padding: 0 0 0 20px;
|
||||
line-height: 12px;
|
||||
}
|
||||
|
||||
.prev-exc-title + ul li {
|
||||
font: 12px "Helvetica Neue", helvetica, arial, sans-serif;
|
||||
}
|
||||
|
||||
.prev-exc-title + ul li .prev-exc-code {
|
||||
display: inline-block;
|
||||
color: #bebebe;
|
||||
}
|
||||
|
||||
.details-container {
|
||||
left: 30%;
|
||||
width: 70%;
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
<div class="frame-file">
|
||||
<?php $filePath = $frame->getFile(); ?>
|
||||
<?php if ($filePath && $editorHref = $handler->getEditorHref($filePath, (int) $line)): ?>
|
||||
Open:
|
||||
<a href="<?php echo $editorHref ?>" class="editor-link"<?php echo ($handler->getEditorAjax($filePath, (int) $line) ? ' data-ajax' : '') ?>>
|
||||
Open:
|
||||
<strong><?php echo $tpl->breakOnDelimiter('/', $tpl->escape($filePath ?: '<#unknown>')) ?></strong>
|
||||
</a>
|
||||
<?php else: ?>
|
||||
|
||||
@@ -15,6 +15,25 @@
|
||||
<div class="exc-message">
|
||||
<?php if (!empty($message)): ?>
|
||||
<span><?php echo $tpl->escape($message) ?></span>
|
||||
|
||||
|
||||
<?php if (count($previousMessages)): ?>
|
||||
<div class="exc-title prev-exc-title">
|
||||
<span class="exc-title-secondary">Previous exceptions</span>
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
<?php foreach ($previousMessages as $i => $previousMessage): ?>
|
||||
<li>
|
||||
<?php echo $tpl->escape($previousMessage) ?>
|
||||
<span class="prev-exc-code">(<?php echo $previousCodes[$i] ?>)</span>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif ?>
|
||||
|
||||
|
||||
|
||||
<?php else: ?>
|
||||
<span class="exc-message-empty-notice">No message</span>
|
||||
<?php endif ?>
|
||||
|
||||
Reference in New Issue
Block a user