На данный момент это все, что можно сделать с этим. Я обновлю его, если найду новую информацию в будущем.
я есть это:
У меня есть файл HTTACCESS с директивой для добавления файла для конфигурации и обработки ошибки: (это обязательно: Согласно документации, этот файл должен быть прикреплен перед выполнением любого другого сценария php для получения ошибок: например, E_PARSE.)
php_value auto_prepend_file "./server/conferror.php"
содержание conferror.php:
<?php
declare(strict_types=1);
ini_set('session.gc_maxlifetime', '0');
ini_set('session.use_only_cookies', '1');
ini_set('session.cookie_httponly', '1');
ini_set('allow_url_fopen', '1');
ini_set('allow_url_include', '1');
ini_set('error_reporting', '1');
ini_set('display_errors', '0');
error_reporting(E_ALL);
set_error_handler("ErrorHandler");
register_shutdown_function("ShutdownHandler");
function ErrorHandler($error_level, $error_message, $error_file, $error_line, $error_context) {
$ErrorHandler = "<b>File:</b> " . $error_file . '<br>' .
"<b>Line :</b> " . $error_line . '<br>' .
"<b>Desc:</b> <br>" . $error_message . '<br>';
echo $ErrorHandler;
exit;
}
function ShutdownHandler() {
$CheckError = error_get_last();
if ($CheckError != null) {
$ErrorHandler = "<b>File:</b> " . $CheckError['file'] . '<br>' .
"<b>Line :</b> " . $CheckError['line'] . '<br>' .
"<b>Desc:</b> <br>" . $CheckError['message'] . '<br>';
echo $ErrorHandler;
exit;
}
}
?>
в моем index.php у меня есть это, чтобы начать работу приложения:
<?php
require_once 'class.Main.php';
$WebAPP = new CORE();
$WebAPP->Main();
?>
в главном файле у меня есть тест, этот код для сброса статического объекта и тестовых обработчиков ошибок:
<?php
class CORE {
public static $ObjClass;
public function __construct() {
self::$ObjClass['data']='data';
}
public function __destruct() {
unset(CORE::$ObjClass);
}
public function Main() {
#not Test on this.
}
}
?>
У меня есть 3 вопроса:
Почему обработчик событий не фиксирует следующую ошибку?Неустранимая ошибка: необработанная ошибка: попытка сбросить статическое свойство CORE :: $ ObjClass в C: \ xampp \ htdocs \ dev \ t2 \ class.Main.php: 8 Трассировка стека: # 0 [внутренняя функция]: CORE -> __ destruct ( ) # 1 {main} в C: \ xampp \ htdocs \ dev \ t2 \ class.Main.php в строке 8
Второй тест:
Этот код:
<?php
class CORE {
public function __construct() {
}
public function __destruct() {
prom();
}
public function Main() {
#not Test on this.
}
}
?>
Создайте эту ошибку:
Неустранимая ошибка: необработанная ошибка: вызов неопределенной функции prom () в C: \ xampp \ htdocs \ dev \ t2 \ class.Main.php: 6 Трассировка стека: # 0 [внутренняя функция]: CORE -> __ destruct () # 1 {main} добавлено в C: \ xampp \ htdocs \ dev \ t2 \ class.Main.php в строке 6
Обновить:
после большого теста я вижу, что обработчик ошибок работает нормально с ошибками в объявленной функции; но это не работа в__construct
или же__destruct
функция.