如何解决如何在PHP DI容器中动态使用数据库连接字符串
我正在使用以下代码:
$user=Auth::user();
print_r($user);
在此PHP-DI容器注入函数中,但此容器函数在此处不允许使用, 我的主要容器功能代码:
protected static function _makeContainer()
{
$config = Config::cache();
$dbConfig = $config['database'];
// Create our new php-di container
$builder = new ContainerBuilder();
$builder->useAutowiring(true);
$builder->addDefinitions([
'config' => $config,PDO::class => di_autowire()->constructor(
"mysql:host={$dbConfig['host']};dbname={$dbConfig['database']}",$dbConfig['username'],$dbConfig['password'],['ATTR_DEFAULT_FETCH_MODE' => PDO::FETCH_OBJ]
),PHPMailer::class => di_autowire()->constructor(true),'Simcify\Mailer' => factory(function($mail) {
$mail->SMTPDebug = 0;
$mail->isSMTP();
$mail->Host = env('SMTP_HOST');
$mail->SMTPAuth = env("SMTP_AUTH");
$mail->Username = env('MAIL_USERNAME');
$mail->Password = env('SMTP_PASSWORD');
$mail->SMTPSecure = env('MAIL_ENCRYPTION');
$mail->Port = env('SMTP_PORT');
return $mail;
})->parameter('mail',get('PHPMailer\PHPMailer\PHPMailer')),Session::class => di_autowire()
]);
Container::setInstance($builder->build());
}
我想根据用户会话使用动态连接字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。