2014-07-09 19 views
6

Sto costruendo un'applicazione in Symfony2 in cui ogni utente ha il proprio database, il che significa che tutti gli utenti hanno il proprio set di credenziali del database. L'utente non conosce quelle credenziali, sono memorizzate all'interno dell'applicazione.Connessioni a più variabili con Propel e Symfony2

A seconda di quale utente ha effettuato l'accesso, l'applicazione recupera le credenziali specifiche dell'utente e memorizza i dati nel database specifico dell'utente.

Sto usando Propel come ORM e so che posso impostare più connessioni. Ma tutte le soluzioni che ho incontrato richiedono conoscere preventivamente i dettagli della connessione, ma non so quale utente si registrerà e si collegherà.

Quindi la mia domanda è: come posso iniziare la corretta connessione al database?

risposta

5

Supponendo si dispone già di connessione (se necessario, a un database fittizio), è possibile modificare i parametri di connessione a fare le seguenti

// Get current configuration 
    $config = \Propel::getConfiguration(); 

    // Change DB configuration 
    $config['datasources']['default']['connection']['dsn'] = 'mysql:host=127.0.0.1;port=3306;dbname=dbname;charset=UTF8'; 
    $config['datasources']['default']['connection']['user'] = 'username'; 
    $config['datasources']['default']['connection']['password'] = 'password'; 

    // Apply configuration 
    \Propel::setConfiguration($config); 
    \Propel::initialize(); 
+0

Grazie, funziona alla grande. – Stan