aboutsummaryrefslogtreecommitdiffstats
path: root/public/admin/controller/startup/error.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/admin/controller/startup/error.php')
-rw-r--r--public/admin/controller/startup/error.php43
1 files changed, 43 insertions, 0 deletions
diff --git a/public/admin/controller/startup/error.php b/public/admin/controller/startup/error.php
new file mode 100644
index 0000000..8489b9c
--- /dev/null
+++ b/public/admin/controller/startup/error.php
@@ -0,0 +1,43 @@
+<?php
+class ControllerStartupError extends Controller {
+ public function index() {
+ $this->registry->set('log', new Log($this->config->get('config_error_filename') ? $this->config->get('config_error_filename') : $this->config->get('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;
+ }
+}