2017-10-13 14 views
0

J'essaie de faire quelque chose de très similaire à ce poste - Dynamic database connection symfony2 - mais avec Silex.Connexion de base de données dynamique dans Silex avec Doctrine 2

J'ai réussi à configurer dynamiquement ma base de données de base et celle à laquelle je souhaite me connecter.

database: 
    base: 
    driver: pdo_sqlite 
    path: database/dev.sqlite 
    website: 
    driver: pdo_sqlite 
    path: ~ 

Ce qui précède est lu dans $dbs_options et ce qui suit est utilisé pour configurer ceci:

$app -> register(new DoctrineServiceProvider, ['dbs.options' => $dbs_options]); 

    // configure the ORM identities 
    $app -> register(new DoctrineOrmServiceProvider, [ 
      'orm.proxies_dir' => Utils::joinPaths($app -> config -> appRoot, 'running', 'proxies'), 
      'orm.em.options' => [ 
       'mappings' => $mappings 
      ] 
     ] 
    ); 

    // set up multiple entity managers and assign the base connection as default 
    $app['orm.ems.default'] = 'basedb'; 
    $app['orm.ems.options'] = [ 
     'basedb' => [ 
      'connection' => 'base', 
      'mappings' => $app['orm.em.options']['mappings'] 
     ], 
     'websitedb' => [ 
      'connection' => 'website', 
      'mappings' => $app['orm.em.options']['mappings'] 
     ] 
    ]; 

Dans mon cas before je suis en mesure d'interroger avec succès le basedb pour obtenir le nom de la base de données de site que je veux connecter.

C'est où je suis coincé, je ne sais pas et je ne suis pas capable de trouver comment reconfigurer la connexion de base de données dans Silex. Est-ce que quelqu'un a fait cela du tout?

Répondre

0

Je n'ai pas eu une telle demande Silex, mais vous pouvez toujours utiliser

$conn = Doctrine\DBAL\DriverManager::getConnection($params, $config); 

pour créer la connexion à la base de données