У меня есть класс с личной ошибкой дескриптора, поэтому я хочу установить эту функцию для всего моего проекта. Как я могу это сделать? Это хороший подход?
Мои занятия :
<?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);
}
}
Похоже, вы поместили инициализацию обработчика ошибок в свой класс подключения к базе данных. Если вы хотите, чтобы ваш обработчик ошибок был доступен везде и как можно раньше, вы должны поместить его в любой файл, являющийся точкой входа вашего приложения (index.php, app.php …). Таким образом, вы уверены, что он всегда будет активен и активирован с самого начала.
Как сказал this.lau_: вы должны поместить его в любой файл, являющийся точкой входа вашего приложения (index.php, app.php …). Таким образом, вы уверены, что он всегда будет активен и активирован с самого начала.