zusätzliche externe Datenbankverbindung

Hallo zusammen,

für ein Plugin muss ich auf eine externe Datenbank zugreifen. Einen enstprechenden Service-Container habe ich angelegt.

Im Kernel wird die Verbindung wie folgt aufgebaut:

$dbConn = $this->config['db'];
$this->connection = Components\DependencyInjection\Bridge\Db::createPDO($dbConn);

Wie kann ich jetzt in meinem Service-Construcor, eine neue Dbal/PDO Verbindung aufbauen? So, dass ich die gleiche Resource habe, wie beim Zugriff über:

Shopware()->Container()->get('dbal_connection')

 

Hier der Service-Container:

namespace ShopwarePlugins\MyPlugin\Component;

class Connection
{
    private $connection;

    public function __construct()
    {
        // connect here
        return $this->connection;
    }
}

Aufruf über:

$db= $controller->get('myplugin.connection');
$db->fetchRows("SELECT ...");

 

Aus einem alten Shopware 4 Projekt, vielleicht hilft’s:

 

$config = new \Doctrine\DBAL\Configuration();
        
$connectionParams = array(
     'dbname' => 'xx',
     'user' => 'xx',
     'password' => 'xx',
     'host' => 'xx.xx.xx.xx',
     'port' => '3306',
     'driver' => 'pdo_mysql'
);
        
$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config);

 

2 Likes

super, funktioniert!