CakePHP: modificare dinamicamente i parametri di connessione al database

ATTENZIONE! Il post ha più di 2 anni e le informazioni contenute potrebbero essere obsolete (ad esempio a causa di un aggiornamento di versione rispetto agli elementi descritti o links modificati da siti esterni).

In CakePHP i parametri per la connessione al database vengono impostati all'interno della classe DATABASE_CONFIG (file: app/config/database.php). Per modificare i paramentri dinamicamente è possibile utilizzare la classe ConnectionManager. Supponendo di dover modificare il prefisso delle tabelle ad esempio:


App::Import('ConnectionManager');
$ds = ConnectionManager::getDataSource('data_source_da_modificare');
$ds->config['prefix'] = $nuovo_prefisso;

Nel caso in cui si voglia creare un nuovo datasource invece di sovrascriverne uno esistente si deve utilizzare il metodo create() del ConnectionManager:


App::Import('ConnectionManager');
$ds = ConnectionManager::getDataSource('data_source_da_modificare');
$new_ds = $ds->config;
$new_ds['prefix'] = $nuovo_prefisso;
ConnectionManager::create('nome_nuovo_datasource', $new_ds);

Commenti