У меня есть вопрос об использовании моего класса базы данных в других классах на моем сайте.Мне нужен только один объект из моего класса базы данных, и это тот экземпляр, на котором я хочу выполнить все свои запросы.
У меня есть класс MysqliExtension, который расширяет и добавляет некоторые дополнительные функции в класс mysqli.У меня также есть класс Users, который управляет входами / выходами моих пользователей, извлекает их информацию из базы данных и т. Д. Наконец, у меня есть файл config.php, в который я включаю эти два класса и создаю экземпляры объектов классов MysqliExtension и User.
config.php
require_once 'MysqliExtension.php';
require_once 'Users.php';
$database = new MysqliExtension(host,....);
Я хотел бы получить некоторые мнения о наилучшем способе передачи моего объекта базы данных в мой объект User.
Опция 1
В моем файле config.php
$user = new User($username,password);
в моем файле Users.php
class User{
function myfunction(){
global $database;
$database->callDatabaseFunction();
return $some_result;
}
}
}
Вариант 2
В моем файле config.php
$user = new User($username,password,$database);
в моем файле Users.php
class User{
function __construct($username,$password,$database){
$this->database = $database;
}
function myfunction(){
$this->database->callDatabaseFunction();
return $some_result;
}
}
}
Какой путьлучше, или они почти одинаковые?Есть ли другой способ все вместе, о котором я не думал?