Gentics Portal.Node PHP API
 All Classes Namespaces Functions Variables Pages
ErrorHandler.php
1 <?php
2 /**
3  *
4  */
5 class ErrorHandler extends CErrorHandler
6 {
7  /**
8  * @var array store error pages for different error types
9  * i.e
10  * array(
11  * 'e404'=> array(
12  * 'en' => 'site/404en'
13  * )
14  * )
15  * Error key should starts with 'e'
16  */
17  public $errorPages = array();
18 
19  public function init()
20  {
21  parent::init();
22 
23  register_shutdown_function(array($this, 'handleFatalError'));
24  }
25 
26  public function getErrorDisplayPage()
27  {
28  if ($this->error) {
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];
33  } else {
34  $tmp = array_values($this->errorPages[$code]);
35  return array_shift($tmp);
36  }
37  }
38  }
39 
40  return false;
41  }
42 
43  public function handleFatalError()
44  {
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());
50  }
51  }
52 
53 }