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()
|
public function actionIndex()
|
||||||
{
|
{
|
||||||
|
$x = null;
|
||||||
|
$x->y = 100;
|
||||||
throw new \yii\base\HttpException(500, 'Test exception');
|
throw new \yii\base\HttpException(500, 'Test exception');
|
||||||
$x = 1;
|
// $x = 1;
|
||||||
echo $this->render('index');
|
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;
|
font-family: Arial,sans-serif;
|
||||||
color: #505050;
|
color: #505050;
|
||||||
}
|
}
|
||||||
|
html,body{
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
/* header */
|
/* header */
|
||||||
.header{
|
.header{
|
||||||
@@ -193,8 +196,18 @@ h1,h2,p,img,ul li{
|
|||||||
margin-top: 40px;
|
margin-top: 40px;
|
||||||
margin-bottom: 1px;
|
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;
|
font-family: Consolas, Courier New, monospace;
|
||||||
|
display: inline;
|
||||||
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* footer */
|
/* footer */
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ window.onload = function() {
|
|||||||
hljs.highlightBlock(codeBlocks[i], ' ');
|
hljs.highlightBlock(codeBlocks[i], ' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
// code block hover line
|
||||||
document.onmousemove = function(e) {
|
document.onmousemove = function(e) {
|
||||||
var lines, i, imax, j, jmax, k, kmax,
|
var lines, i, imax, j, jmax, k, kmax,
|
||||||
event = e || window.event,
|
event = e || window.event,
|
||||||
@@ -31,7 +31,10 @@ window.onload = function() {
|
|||||||
hoverLines[k].className = 'hover-line';
|
hoverLines[k].className = 'hover-line';
|
||||||
}
|
}
|
||||||
if (lineFound) {
|
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) {
|
if (YII_DEBUG) {
|
||||||
ini_set('display_errors', 1);
|
ini_set('display_errors', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$view = new View();
|
$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
|
<?php
|
||||||
/**
|
/**
|
||||||
* @var \yii\base\View $this
|
* @var \yii\base\View $this
|
||||||
* @var \yii\base\ErrorHandler $c
|
|
||||||
* @var string $file
|
* @var string $file
|
||||||
* @var integer $line
|
* @var integer $line
|
||||||
* @var integer $index
|
* @var integer $index
|
||||||
* @var string[] $lines
|
* @var string[] $lines
|
||||||
* @var integer $begin
|
* @var integer $begin
|
||||||
* @var integer $end
|
* @var integer $end
|
||||||
|
* @var \yii\base\ErrorHandler $c
|
||||||
*/
|
*/
|
||||||
$c = $this->context;
|
$c = $this->context;
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
/**
|
/**
|
||||||
* @var \yii\base\View $this
|
* @var \yii\base\View $this
|
||||||
* @var \Exception $e
|
* @var \Exception $e
|
||||||
|
* @var string $request
|
||||||
|
* @var integer $requestLinesCount
|
||||||
* @var \yii\base\ErrorHandler $c
|
* @var \yii\base\ErrorHandler $c
|
||||||
*/
|
*/
|
||||||
$c = $this->context;
|
$c = $this->context;
|
||||||
@@ -27,6 +29,14 @@ $c = $this->context;
|
|||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="header">
|
<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"/>
|
<img src="/tmp/attention.png" alt="Attention"/>
|
||||||
<h1>
|
<h1>
|
||||||
<span>Exception</span> – <?php echo $c->addTypeLinks(get_class($e)); ?>
|
<span>Exception</span> – <?php echo $c->addTypeLinks(get_class($e)); ?>
|
||||||
@@ -35,6 +45,7 @@ $c = $this->context;
|
|||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $c->htmlEncode($e->getName()); ?></h2>
|
<h2><?php echo $c->htmlEncode($e->getName()); ?></h2>
|
||||||
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="call-stack">
|
<div class="call-stack">
|
||||||
@@ -46,49 +57,11 @@ $c = $this->context;
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php /*
|
|
||||||
<div class="request">
|
<div class="request">
|
||||||
<div id="code-wrap"></div>
|
<div class="code">
|
||||||
<div id="code-highlighter"></div>
|
<pre><?php echo $c->htmlEncode($request); ?></pre>
|
||||||
<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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>*/ ?>
|
|
||||||
|
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<img src="/tmp/logo.png" alt="Yii Framework"/>
|
<img src="/tmp/logo.png" alt="Yii Framework"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user