обработка ошибок — PHP set_error_handler весь проект

У меня есть класс с личной ошибкой дескриптора, поэтому я хочу установить эту функцию для всего моего проекта. Как я могу это сделать? Это хороший подход?

Мои занятия :

<?php

define("LOG_FILE", "/tmp/errors.log");

class ErrorManager{


function handleError($error_number, $error_messsage, $error_file){
ini_set("log_errors", 1);
error_log( "Some Error message!", 3, LOG_FILE);
return true;
}
}


?>

Я называю это так:

function Connect() {
$this->status = 0;
$this->host = $_SESSION['dbhost'];
$this->user = $_SESSION['dbuser'];
$this->pass = $_SESSION['dbpassword'];
$this->dbname = $_SESSION['dbnamebase'];
$this->db = mysqli_connect($this->host, $this->user, $this->pass);

$old_error_handler = set_error_handler('ErrorManager::handleError', E_ALL);

if (!$this->db) {
trigger_error("errou feio", E_USER_ERROR);
} else {
$this->status = 1;
mysqli_select_db($this->db,$this->dbname);
}
}

1

Решение

Похоже, вы поместили инициализацию обработчика ошибок в свой класс подключения к базе данных. Если вы хотите, чтобы ваш обработчик ошибок был доступен везде и как можно раньше, вы должны поместить его в любой файл, являющийся точкой входа вашего приложения (index.php, app.php …). Таким образом, вы уверены, что он всегда будет активен и активирован с самого начала.

0

Другие решения

Как сказал this.lau_: вы должны поместить его в любой файл, являющийся точкой входа вашего приложения (index.php, app.php …). Таким образом, вы уверены, что он всегда будет активен и активирован с самого начала.

0

По вопросам рекламы [email protected]