43 lines
1003 B
PHP
43 lines
1003 B
PHP
<?php
|
|
class ControllerStartupError extends Controller {
|
|
public function index() {
|
|
$this->registry->set('log', new Log($this->config->get('config_error_filename')));
|
|
|
|
set_error_handler(array($this, 'handler'));
|
|
}
|
|
|
|
public function handler($code, $message, $file, $line) {
|
|
// error suppressed with @
|
|
if (error_reporting() === 0) {
|
|
return false;
|
|
}
|
|
|
|
switch ($code) {
|
|
case E_NOTICE:
|
|
case E_USER_NOTICE:
|
|
$error = 'Notice';
|
|
break;
|
|
case E_WARNING:
|
|
case E_USER_WARNING:
|
|
$error = 'Warning';
|
|
break;
|
|
case E_ERROR:
|
|
case E_USER_ERROR:
|
|
$error = 'Fatal Error';
|
|
break;
|
|
default:
|
|
$error = 'Unknown';
|
|
break;
|
|
}
|
|
|
|
if ($this->config->get('config_error_display')) {
|
|
echo '<b>' . $error . '</b>: ' . $message . ' in <b>' . $file . '</b> on line <b>' . $line . '</b>';
|
|
}
|
|
|
|
if ($this->config->get('config_error_log')) {
|
|
$this->log->write('PHP ' . $error . ': ' . $message . ' in ' . $file . ' on line ' . $line);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|