mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-17 06:48:59 +08:00
New error page WIP.
This commit is contained in:
@@ -20,8 +20,10 @@ class SiteController extends Controller
|
||||
|
||||
public function actionIndex()
|
||||
{
|
||||
$x = null;
|
||||
$x->y = 100;
|
||||
throw new \yii\base\HttpException(500, 'Test exception');
|
||||
$x = 1;
|
||||
// $x = 1;
|
||||
echo $this->render('index');
|
||||
}
|
||||
|
||||
|
||||
BIN
apps/bootstrap/www/tmp/gears.png
Normal file
BIN
apps/bootstrap/www/tmp/gears.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.5 KiB |
@@ -50,6 +50,9 @@ h1,h2,p,img,ul li{
|
||||
font-family: Arial,sans-serif;
|
||||
color: #505050;
|
||||
}
|
||||
html,body{
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
/* header */
|
||||
.header{
|
||||
@@ -193,8 +196,18 @@ h1,h2,p,img,ul li{
|
||||
margin-top: 40px;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
.request pre{
|
||||
.request .code{
|
||||
min-width: 860px; /* 960px - 50px * 2 */
|
||||
max-width: 1100px; /* 1200px - 50px * 2 */
|
||||
margin: 0 auto;
|
||||
padding: 15px 50px;
|
||||
}
|
||||
.request .code pre{
|
||||
line-height: 18px;
|
||||
font-size: 14px;
|
||||
font-family: Consolas, Courier New, monospace;
|
||||
display: inline;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
/* footer */
|
||||
|
||||
@@ -8,7 +8,7 @@ window.onload = function() {
|
||||
hljs.highlightBlock(codeBlocks[i], ' ');
|
||||
}
|
||||
|
||||
//
|
||||
// code block hover line
|
||||
document.onmousemove = function(e) {
|
||||
var lines, i, imax, j, jmax, k, kmax,
|
||||
event = e || window.event,
|
||||
@@ -31,7 +31,10 @@ window.onload = function() {
|
||||
hoverLines[k].className = 'hover-line';
|
||||
}
|
||||
if (lineFound) {
|
||||
Sizzle('.call-stack-item:eq(' + i + ') .hover-line:eq(' + j + ')')[0].className = 'hover-line hover';
|
||||
var line = Sizzle('.call-stack-item:eq(' + i + ') .hover-line:eq(' + j + ')');
|
||||
if (line[0]) {
|
||||
line[0].className = 'hover-line hover';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -93,8 +93,22 @@ class ErrorHandler extends Component
|
||||
if (YII_DEBUG) {
|
||||
ini_set('display_errors', 1);
|
||||
}
|
||||
|
||||
$view = new View();
|
||||
echo $view->renderFile($this->mainView, array('e' => $exception), $this);
|
||||
$request = array();
|
||||
if (count($_GET) > 0) {
|
||||
$request[] = '$_GET = ' . var_export($_GET, true) . ';';
|
||||
}
|
||||
if (count($_POST) > 0) {
|
||||
$request[] = '$_POST = ' . var_export($_POST, true) . ';';
|
||||
}
|
||||
$request[] = '$_SERVER = ' . var_export($_SERVER, true) . ';';
|
||||
$request = implode("\n\n", $request);
|
||||
echo $view->renderFile($this->mainView, array(
|
||||
'e' => $exception,
|
||||
'request' => $request,
|
||||
'requestLinesCount' => substr_count($request, "\n"),
|
||||
), $this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<?php
|
||||
/**
|
||||
* @var \yii\base\View $this
|
||||
* @var \yii\base\ErrorHandler $c
|
||||
* @var string $file
|
||||
* @var integer $line
|
||||
* @var integer $index
|
||||
* @var string[] $lines
|
||||
* @var integer $begin
|
||||
* @var integer $end
|
||||
* @var \yii\base\ErrorHandler $c
|
||||
*/
|
||||
$c = $this->context;
|
||||
?>
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
/**
|
||||
* @var \yii\base\View $this
|
||||
* @var \Exception $e
|
||||
* @var string $request
|
||||
* @var integer $requestLinesCount
|
||||
* @var \yii\base\ErrorHandler $c
|
||||
*/
|
||||
$c = $this->context;
|
||||
@@ -27,6 +29,14 @@ $c = $this->context;
|
||||
|
||||
<body>
|
||||
<div class="header">
|
||||
<?php if ($e instanceof \yii\base\ErrorException): ?>
|
||||
<img src="/tmp/gears.png" alt="Gears"/>
|
||||
<h1>
|
||||
<span><?php echo $c->htmlEncode($e->getName()); ?></span>
|
||||
– <?php echo $c->addTypeLinks(get_class($e)); ?>
|
||||
</h1>
|
||||
<h2><?php echo $c->htmlEncode($e->getMessage()); ?></h2>
|
||||
<?php else: ?>
|
||||
<img src="/tmp/attention.png" alt="Attention"/>
|
||||
<h1>
|
||||
<span>Exception</span> – <?php echo $c->addTypeLinks(get_class($e)); ?>
|
||||
@@ -35,6 +45,7 @@ $c = $this->context;
|
||||
<?php endif; ?>
|
||||
</h1>
|
||||
<h2><?php echo $c->htmlEncode($e->getName()); ?></h2>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="call-stack">
|
||||
@@ -46,49 +57,11 @@ $c = $this->context;
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<?php /*
|
||||
<div class="request">
|
||||
<div id="code-wrap"></div>
|
||||
<div id="code-highlighter"></div>
|
||||
<div id="code-inner-wrap">
|
||||
<pre id="code">$_GET = [
|
||||
'show-post' => 100,
|
||||
'refresh-page' => 'yes',
|
||||
'ascending-sort' => 1,
|
||||
];
|
||||
|
||||
$_POST = [
|
||||
'blog-post-form' => [
|
||||
'title' => 'hello',
|
||||
'author_id' => '12',
|
||||
],
|
||||
];
|
||||
|
||||
$_SERVER = [
|
||||
'DOCUMENT_ROOT' => '/home/resurtm/work/data',
|
||||
'REMOTE_ADDR' => '::1',
|
||||
'REMOTE_PORT' => '52694',
|
||||
'SERVER_SOFTWARE' => 'PHP 5.4.3 Development Server',
|
||||
'SERVER_PROTOCOL' => 'HTTP/1.1',
|
||||
'SERVER_NAME' => 'localhost',
|
||||
'SERVER_PORT' => '8000',
|
||||
'REQUEST_URI' => '/index.php?post-form[title]=hello&post-form[author_id]=12',
|
||||
'REQUEST_METHOD' => 'GET',
|
||||
'SCRIPT_NAME' => '/index.php',
|
||||
'SCRIPT_FILENAME' => '/home/resurtm/work/data/index.php',
|
||||
'PHP_SELF' => '/index.php',
|
||||
'QUERY_STRING' => 'post-form[title]=hello&post-form[author_id]=12',
|
||||
'HTTP_HOST' => 'localhost:8000',
|
||||
'HTTP_USER_AGENT' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0',
|
||||
'HTTP_ACCEPT_LANGUAGE' => 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
|
||||
'HTTP_ACCEPT_ENCODING' => 'gzip, deflate',
|
||||
'HTTP_CONNECTION' => 'keep-alive',
|
||||
'REQUEST_TIME_FLOAT' => 1369146454.0856,
|
||||
'REQUEST_TIME' => 1369146454,
|
||||
];</pre>
|
||||
<div class="code">
|
||||
<pre><?php echo $c->htmlEncode($request); ?></pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>*/ ?>
|
||||
|
||||
<div class="footer">
|
||||
<img src="/tmp/logo.png" alt="Yii Framework"/>
|
||||
|
||||
Reference in New Issue
Block a user