CodeIgniter: lavorare con i database
Pagina 1 di 5
1. Configurazione per l'interfaccia ai database
L'Application Framework per PHP CodeIgniter (per chi fosse interessato su questo è disponibile una mia guida introduttiva che illustra le basi di questo framework) mette a dispisizione un supporto completo per la creazione di applicazioni in grado di interagire con i dati contenuti all'interno di un database; tra i DBMS che è possibile utilizzare in associazione con questa piattaforma vi sono MySQL, MySQLi, PostgreSQL, ODBC, MSSQL, SQLite e Oci8.
CodeIgniter mette a disposizione dello sviluppatore un apposito file di configurazione in cui sarà possibile memorizzare tutti i parametri necessari per la connessione tra applicazione e Database Manager e per la selezione della base di dati da utilizzare; questi parametri sono in genere i seguenti:
- il nome di host della macchina che ospita il DBMS (ad esempio un indirizzo IP o "localhost" nel caso di un'installazione locale);
- la username dell'utente che possiede i privilegi necessari per l'accesso al database e per l'invio di query;
- la password necessaria per l'autenticazione dell'utente;
- il nome del database a cui dovrà accedere l'applicazione.
system/application/config/database.phpAll'interno del codice di questo file è presente un array multidimensionale che consentirà di indicare al framework tutti i parametri necessari per l'interazione con il database manager:
/* impostazione dei parametri per l'interazione con i database */ // nome di host della macchina ospitante $db['default']['hostname'] = "localhost"; // utente per la connessione al DBMS $db['default']['username'] = "root"; // password per l'autenticazione dell'utente $db['default']['password'] = ""; // nome del database da selezionare $db['default']['database'] = "database_name"; // tipologia di DBMS da utilizzare $db['default']['dbdriver'] = "mysql"; // prefisso per le tabelle // (utile quando più applicazioni condividono lo stesso database) $db['default']['dbprefix'] = ""; // connessioni persistenti: TRUE per abilitarle // diversamente il valore dovrà essere FALSE $db['default']['pconnect'] = TRUE; // abilitazione del debugging delle interrogazioni: // TRUE per abilitarlo diversamente il valore dovrà essere FALSE $db['default']['db_debug'] = FALSE; // abilitazione del caching delle interrogazioni: // TRUE per abilitarlo diversamente il valore dovrà essere FALSE $db['default']['cache_on'] = FALSE; // percorso alla cartella in cui verranno salvati i file della cache $db['default']['cachedir'] = ""; // set di caratteri utilizzati per le interrogazioni $db['default']['char_set'] = "utf8"; // collation di caratteri utilizzati per le interrogazioni $db['default']['dbcollat'] = "utf8_general_ci";Il motivo per cui il framework introduce un array multidimensionale invece che un vettore monodimensionale, sta nel fatto che gli sviluppatori hanno voluto permettere agli utilizzatori di definire più raccolte di valori necessari per la connessione e l'interazione; si tratta di un meccanismo che può risultare molto utile per coloro che devono utilizzare più ambienti di lavoro ma un'unica installazione di CodeIgniter.
In questo modo sarà possibile per esempio creare un set di valori da utilizzare in fase di sviluppo e un'altro per la fase di produzione; ad esempio:
/* esempio di definizione di un set di connessione per la fase di sviluppo di un'applicazione */ $db['sviluppo']['hostname'] = "localhost"; $db['sviluppo']['username'] = "pippo"; $db['sviluppo']['password'] = "pluto"; $db['sviluppo']['database'] = "agenda"; $db['sviluppo']['dbdriver'] = "mysql"; $db['sviluppo']['dbprefix'] = "cdi_"; $db['sviluppo']['pconnect'] = FALSE; $db['sviluppo']['db_debug'] = TRUE; $db['sviluppo']['cache_on'] = FALSE; $db['sviluppo']['cachedir'] = "temp"; $db['sviluppo']['char_set'] = "utf8"; $db['sviluppo']['dbcollat'] = "utf8_general_ci";A questo punto, per comunicare al framework quale delle raccolte si deve utilizzare in una determinata fase, sarà quindi sufficiente valorizzare la variabile $active_group presente nel file di configurazione con il nome del set da utilizzare:
/* definizione del set di connessione da utilizzare per la fase di lavoro corrente */ $active_group = "sviluppo";Gli esempi presentati in questa parte della trattazione fanno riferimento al DBMS MySQL, in quanto il più utilizzato per la realizzazione di applicazioni Web based in PHP; ma per l'utilizzo di altri Database manager potrebbe non essere necessario specificare tutti i parametri di configurazione previsti nel file "database.php"; si pensi per esempio a SQLite che non richiede autenticazione.







