Строго говоря, вы не создадите один экземпляр для нескольких пользователей.Каждый запрос, который создает объект базы данных, создает его снова.
Если вы в основном извлекаете информацию о пользователях, используя базу данных, я бы порекомендовал написать объектную модель для представления ваших пользователей.Это, как и ваш класс базы данных, может быть включено в глобальную область вместе с вызовом session_start (), чтобы позволить вам управлять пользовательскими сеансами в одном интерфейсе класса.Моделирование возможностей сайта становится намного проще, когда постоянство, управляемое базой данных, заключено в некоторый объектный интерфейс, который имеет смысл.
Вы можете написать базовый класс, который имеет методы, которые используют ваш класс базы данных и подают запросы в него.
class User{
public function __construct($user_id){
//use your database class to find a user id and assign properties of the user data
//Then save to the session.
$_SESSION['user'] = $this;
}
public static function Login($username, $pass){
//use your database object to find the user id associated with the passed login creds, then construct it as a user using the above function;
}
public static function Logout(){
//remove any user in the session and restart the session
}
}
Этот вид кода на основе модели часто полезен для создания очень семантических имен методов и может быть полезен для управления глобальным состоянием, таким как пользовательские свойства в базе данных.Это также удобно, когда вы начинаете писать абстрактные классы, которые содержат связность и структурирование для данных, от которых могут наследовать дети.
Я столкнулся с множеством классов баз данных, которые развертываются как одиночные, когда все небольшие развертывания всеэто необходимо, и вызов любой их функции запроса создает доступ к постоянному соединению, а затем закрывает его в конце запроса.