/** * @param $errno * @param $errstr * @param $errfile * @param $errline * @param $errcontext */ static function error_handler($errno, $errstr, $errfile, $errline, $errcontext) { $default_domain = Localize::textDomain(NULL); Localize::textDomain(self::$domain); $format = "[%s] %s %s(%s)\n"; $lang_sub_list = array(__gt("array"), __gt("string"), __gt("object")); $lang_list = array(__gt('Missing argument %d for %s, called in'), __gt('Use of undefined constant %s - assumed \'%s\''), __gt('%s to %s conversion'), __gt('Illegal string offset \'%s\''), __gt('Call to undefined method'), __gt('Non-static method %s should not be called statically'), __gt('Call to protected method %s from context \'%s\''), __gt('Cannot access private property'), __gt('Undefined variable: %s'), __gt('Undefined index: %s'), __gt('Illegal offset type in isset or empty'), __gt('%s expects parameter %s to be %s, %s given'), __gt('Call to private method %s from context \'%s\''), __gt('Call to a member function %s on a non-object'), __gt('Invalid argument supplied for %s')); $errorno_str = array(E_ERROR => 'ERROR', E_WARNING => 'WARNING', E_PARSE => 'PARSE', E_NOTICE => 'NOTICE', E_CORE_ERROR => 'CORE_ERROR', E_CORE_WARNING => 'CORE_WARNING', E_COMPILE_ERROR => 'COMPILE_ERROR', E_COMPILE_WARNING => 'COMPILE_WARNING', E_USER_ERROR => 'USER_ERROR', E_USER_WARNING => 'USER_WARNING', E_USER_NOTICE => 'USER_NOTICE', E_STRICT => 'STRICT', E_RECOVERABLE_ERROR => 'RECOVERABLE_ERROR', E_DEPRECATED => 'DEPRECATED', E_USER_DEPRECATED => 'USER_DEPRECATED'); $errorno_list = array(E_ERROR => __('Fatal run-time errors'), E_WARNING => __('Run-time warnings (non-fatal errors)'), E_PARSE => __('Compile-time parse errors'), E_NOTICE => __('Run-time notices'), E_CORE_ERROR => __('Fatal errors that occur during PHP\'s initial startup'), E_CORE_WARNING => __('Warnings (non-fatal errors)'), E_COMPILE_ERROR => __('Fatal compile-time errors'), E_COMPILE_WARNING => __('Compile-time warnings (non-fatal errors)'), E_USER_ERROR => __('User-generated error message'), E_USER_WARNING => __('User-generated warning message'), E_USER_NOTICE => __('User-generated notice message'), E_STRICT => __('Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code'), E_RECOVERABLE_ERROR => __('Catchable fatal error'), E_DEPRECATED => __('Run-time notices'), E_USER_DEPRECATED => __('User-generated warning message')); $errno_lg = ""; if (isset($errorno_list[$errno])) { $errno_lg = $errorno_list[$errno]; } $errno = $errorno_str[$errno] . ":" . $errno_lg; foreach ($lang_list as $v) { $pv0 = self::get_pregstr($v[0]); if (preg_match("/" . $pv0 . "/", $errstr, $mt)) { $pv1 = self::get_pregstr_replace($v[1]); $errstr = preg_replace("/" . $pv0 . "/", $pv1, $errstr, 1); foreach ($lang_sub_list as $vv) { $pvv0 = self::get_pregstr($vv[0]); $pvv1 = self::get_pregstr_replace($vv[1]); $errstr = preg_replace("/([\\b])" . $pvv0 . "([\\b])/i", "\$1" . $pvv1 . "\$2", $errstr); } break; } } echo sprintf($format, $errno, $errstr, $errfile, $errline, $errcontext); Localize::textDomain($default_domain); }