- Timestamp:
- 2010/03/11 10:35:11 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tmp/version-2_5-test/data/class/pages/error/LC_Page_Error_SystemError.php
r16931 r18609 26 26 27 27 /** 28 * エラー表示のページクラス29 * SC_DbConnでエラーが発生した場合の表示ページ28 * システムエラー表示のページクラス 29 * システムエラーや例外が発生した場合の表示ページ 30 30 * 31 31 * @package Page … … 34 34 */ 35 35 class LC_Page_Error_SystemError extends LC_Page_Error { 36 37 /** PEAR_Error */ 38 var $pearResult; 39 40 /** PEAR_Error がセットされていない場合用のバックトレーススタック */ 41 var $backtrace; 42 43 /** デバッグ用のメッセージ配列 */ 44 var $arrDebugMsg = array(); 36 45 37 46 // }}} … … 47 56 48 57 $this->tpl_title = 'システムエラー'; 49 $this->adminPage = $this->isAdminPage();58 $this->adminPage = SC_Utils_Ex::sfIsAdminFunction(); 50 59 51 60 if ($this->adminPage) { … … 78 87 $objView->assignobj($this); 79 88 $objView->display($this->flame); 89 90 if (DEBUG_MODE) { 91 echo '<div class="debug">'; 92 echo '<div>▼▼▼ デバッグ情報ここから ▼▼▼</div>'; 93 echo '<pre>'; 94 print_r(htmlspecialchars($this->sfGetErrMsg(), ENT_QUOTES, CHAR_CODE)); 95 echo '</pre>'; 96 echo '<div>▲▲▲ デバッグ情報ここまで ▲▲▲</div>'; 97 echo '</div>'; 98 } 80 99 } 81 100 … … 90 109 91 110 /** 92 * 管理ページかどうかを判定する.111 * エラーメッセージを生成する 93 112 * 94 * @return boolean113 * @return string 95 114 */ 96 function isAdminPage() { 97 return preg_match('|/admin/|', $_SERVER['PHP_SELF']); 115 function sfGetErrMsg() { 116 $errmsg = ''; 117 $errmsg .= $this->lfGetErrMsgHead(); 118 $errmsg .= "\n"; 119 120 // デバッグ用のメッセージが指定されている場合 121 if (!empty($this->arrDebugMsg)) { 122 $errmsg .= implode("\n\n", $this->arrDebugMsg) . "\n"; 123 $errmsg .= "\n"; 124 } 125 126 // PEAR エラーを伴う場合 127 if (!is_null($this->pearResult)) { 128 $errmsg .= $this->pearResult->message . "\n\n"; 129 $errmsg .= $this->pearResult->userinfo . "\n\n"; 130 $errmsg .= SC_Utils_Ex::sfBacktraceToString($this->pearResult->backtrace); 131 } 132 // (上に該当せず)バックトレーススタックが指定されている場合 133 else if (is_array($this->backtrace)) { 134 $errmsg .= SC_Utils_Ex::sfBacktraceToString($this->backtrace); 135 } 136 // (上に該当せず)バックトレースを生成できる環境(一般的には PHP 4 >= 4.3.0, PHP 5)の場合 137 else if (function_exists("debug_backtrace")) { 138 $errmsg .= SC_Utils_Ex::sfBacktraceToString(array_slice(debug_backtrace(), 2)); 139 } 140 141 return $errmsg; 142 } 143 144 /** 145 * エラーメッセージの冒頭部を生成する 146 * 147 * @return string 148 */ 149 function lfGetErrMsgHead() { 150 $errmsg = ''; 151 $errmsg .= SC_Utils_Ex::sfGetUrl() . "\n"; 152 $errmsg .= "\n"; 153 $errmsg .= "SERVER_ADDR: " . $_SERVER['SERVER_ADDR'] . "\n"; 154 $errmsg .= "REMOTE_ADDR: " . $_SERVER['REMOTE_ADDR'] . "\n"; 155 $errmsg .= "USER_AGENT: " . $_SERVER['HTTP_USER_AGENT'] . "\n"; 156 157 return $errmsg; 158 } 159 160 /** 161 * デバッグ用のメッセージを追加 162 * 163 * @return void 164 */ 165 function addDebugMsg($debugMsg) { 166 $this->arrDebugMsg[] = rtrim($debugMsg, "\n"); 98 167 } 99 168 }
Note: See TracChangeset
for help on using the changeset viewer.