Сейчас не могу в точности воспроизвести проблему, но дело было так (код примерный):
$container = new Container();
$container->set('settings', fn() => [
'database' => [
'dsn' => 'mysql:host=' . env('DB_HOST', 'example') . ';dbname=' . env('DB_NAME', 'example'),
'username' => env('DB_USER', 'example'),
'password' => env('DB_PASS', 'example')
]
]);
$settings = $container->get('settings');
var_dump($settings); // 'database' => ['dsn' => 'mysql:host=127.0.0.1;dbname=example', 'username' => 'root', 'password' => 'root']
$container->set(PDO::class, function() use ($settings) {
$database = $settings['database'];
return new PDO(
$database['dsn'],
$database['username'],
$database['password'] // потом БУДЕТ ошибка в этой строке
);
});
var_dump($container->get(PDO::class)); // ожидается object(PDO), но получаем - Connection refused, ошибка в строке, в которой прописано - $database['password']
и там ещё в трассировке было (по памяти всё пишу), что-то вроде:
new PDO('mysql:host=127.0.0.1;dbname=example', 'root', '[
какой-то_неприкосновенный_параметр]'), дословно текст не помню про параметр, там не неприкосновенный, а как-то ещё написано было
Я понимаю, что конфликт с паролем - root, но никогда не сталкивался с такой проблемой и нет опыта правильного её решения. Дело в том, что использовал ранее разные линуксы, с такой ошибкой не сталкивался и на последнем, который использовал - AltLinux Рабочая станция К 10 всё работало, вчера установил AltLinux Рабочая станция К 11 BETA, развернул мускул по
Этому мануалу и поймал ошибку эту.
Как исправить правильно?