публик затем, что в пдо есть много разных методов и в текущей реализации это единственный способ к ним обратиться.
Пароль в конструкторе не очень хорошая идея, надо по крайней мере сделать его массивом, а то иначе он попадет в стек трейс.
по-хорошему, я сейчас считаю, что автору на данном этапе вообще вреден класс ДБ, ему надо начать с чистого пдо.
public $pdo;
public function __destruct() {
$pdo = NULL;
}
public function __construct() {
$host = "localhost";
$user = "root";
$password = "";
$dbname = "dbtest";
$charset = "utf8";
public function __construct(string $host, string $user, string $password, string $dbname, string $charset = 'utf8') {
Если человеку нужен карман, то карман передается в конструктор добавляется в свойства класса.
Потому, что один запрос - это генерация страницы, а другой запрос - это генерация панельки-профайлера. Так и должно быть.
Очевидно, что процесс в Docker работает под другим UID нежели ваш пользователь. Это отдельная тема для гугления.
Судя по всему, проблема ни в Symfony, ни в Doctrine, а в том, что у вас некорректно сконфигурирована среда.