-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patherror-fatal.html
62 lines (60 loc) · 2.97 KB
/
error-fatal.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Ethnamドキュメント</title>
<link href="css/style.css" media="all" rel="stylesheet" />
<link href="css/github.css" media="all" rel="stylesheet" />
</head>
<body>
<p><a href=".">目次</a></p>
<div class="blob instapaper_body">
<article class="markdown-body entry-content">
<h1>エラーレベルに応じて共通の画面を表示させる</h1>
<h2>エラーレベルに応じて共通の画面を表示させる</h2>
<p>Ethnaフレームワークでは,全てのエラーをコントローラのhandleErrorメソッドで処理しています. デフォルトでは,ログ出力とアラーとメール送信の処理がEthna_Controllerで定義されています.</p>
<pre><code>/**
* エラーハンドラ
*
* エラー発生時の追加処理を行いたい場合はこのメソッドをオーバーライドする
* (アラートメール送信等−デフォルトではログ出力時にアラートメール
* が送信されるが、エラー発生時に別にアラートメールをここで送信
* させることも可能)
*
* @access public
* @param object Ethna_Error エラーオブジェクト
*/
function handleError(&$error)
{
// ログ出力
list ($log_level, $dummy) = $this->logger->errorLevelToLogLevel($error->getLevel());
$message = $error->getMessage();
$this->logger->log($log_level, sprintf("%s [ERROR CODE(%d)]", $message, $error->getCode()));
}</code></pre>
<p>エラー発生時にこれ以外の処理を行いたい場合,{アプリケーションID}_ControllerにhandleErrorを定義し,オーバーライドすることで,任意の処理を追加することが可能です.</p>
<p>例として,エラーレベルが'Error'の場合に「ただ今混雑しています」と表示させるには,app/{アプリケーションID}_Controller.phpに下記を追加します。</p>
<pre><code>/**
* エラーハンドラ
*
* @access public
* @param object Ethna_Error エラーオブジェクト
*/
function handleError(&$error)
{
// ログ出力
list ($log_level, $dummy) = $this->logger->errorLevelToLogLevel($error->getLevel());
$message = $error->getMessage();
$this->logger->log($log_level, sprintf("%s [ERROR CODE(%d)]", $message, $error->getCode()));
//
// template/ja/error.tpl に「ただ今混雑しています」
// と書いておく
//
$renderer = $this->getRenderer();
$renderer->perform('error.tpl');
}</code></pre> </article>
</div>
<div class="site-footer">
@2015 <a href="https://twitter.com/DQNEO">DQNEO</a>
</div>
</body>
</html>