Вы должны взглянуть на инъекцию зависимостей.
Основная идея заключается в том, что вы вводите составной и полный объект PDO (зависимость) при создании пользователя.Попробуйте настроить PDO только один раз в вашем приложении и получить его через шаблон синглтона.Таким образом, у вас есть только этот один экземпляр.
Например,
$pdo = new PDO($connString);
$user = new User($pdo);
Обязательно добавьте свойство объекта в User, чтобы вы могли получить доступ к $ this-> pdo.
Это только один из подходов к решению вашей проблемы, но это не самый эффективный способ.
Если вы собираетесь использовать принцип наилучшей практики, вы вообще не будете использовать объект PDO в User.Вместо этого вы должны построить Object-Relational-Mapper (ORM).При таком подходе у вас будет центральный Entity-Manager, который содержит адаптер базы данных, в вашем случае pdo.Этот объект-менеджер будет принимать пользователя и может применять к нему операции базы данных, такие как удаление, создание, обновление.Вы должны определить общее отображение, чтобы свойства объекта равнялись столбцам таблицы.
Не стесняйтесь спрашивать, нужна ли вам дополнительная информация :)