17 public $errorPages = array();
19 public function init()
23 register_shutdown_function(array($this,
'handleFatalError'));
26 public function getErrorDisplayPage()
29 $code =
'e' . $this->error[
'code'];
30 if (array_key_exists($code, $this->errorPages)) {
31 if (array_key_exists(Yii::app()->language, $this->errorPages[$code])) {
32 return $this->errorPages[$code][Yii::app()->language].
"?error=".$this->error[
'code'];
34 $tmp = array_values($this->errorPages[$code]);
35 return array_shift($tmp);
43 public function handleFatalError()
45 $error = error_get_last();
46 if (isset($error) && in_array($error[
'type'], array(E_ERROR, E_PARSE, E_COMPILE_ERROR, E_CORE_ERROR))) {
47 $message =
"{$error['message']}. File: {$error['file']}. Line: {$error['line']}";
48 Yii::log($message, CLogger::LEVEL_ERROR,
'php');
49 Yii::app()->log->processLogs(
new CEvent());