У меня есть следующий сценарий: приложение, в котором у каждого пользователя есть своя собственная база данных и «admin db», используемая для аутентификации пользователей. После успешной аутентификации у этого пользовательского объекта есть поле, которое дает мне параметры его базы данных для подключения и использования его базы данных приложения.
В соответствии с документами Symfony и Doctrine мне следует использовать класс-оболочку следующим образом:
//config/packages/doctrine.yaml
doctrine:
dbal:
default_connection: default
connections:
default:
# configure these for your database server
url: '%env(resolve:DATABASE_URL)%'
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
wrapper_class: 'App\Service\DatabaseWrapper'
userscon:
# configure these for your database server
url: '%env(resolve:DATABASE_URL)%'
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
И мой класс-оболочка
namespace App\Service;
use Doctrine\Common\EventManager;
use Doctrine\DBAL\Configuration;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Driver;
class DatabaseWrapper extends Connection
{
public function __construct($params, Driver $driver, ?Configuration $config = null, ?EventManager $eventManager = null)
{
parent::__construct($params, $driver, $config, $eventManager);
}
}
Я использую userscon для аутентификации пользователей, и это работает нормально, проблема в том, как мне пройти аутентификацию в настоящее время пользователь внутри класса оболочки конструктора?
Я уже пытался получить пользователя из службы , но дает мне ноль
Я не уверен, что это лучший подход к выполнить эту задачу, и я открыт для предложений. Спасибо!