21 Jan 2013 0 commenti
CodeIgniter dispone di per se di una serie di file di configurazione, tutti collocati nella cartella /application/config. I file si distinguono in relazione alla funzione da loro svolta.
All'interno di tali file viene popolati array o definite costanti (con la funzione define) che determineranno la modalità funzionamento e le diverse impostazioni di Code Igniter.
I nostri progetti, soprattutto quando di grandi dimensione, possono richiedere un file di configurazione dedicato che ne fissa le impostazioni e/o le regole di funzionamento.
Per fare ciò ci basterà creare un nuovo file all'interno della /application/config ed al suo interno inseriremo l'array $config con chiavi letterali che non dovranno andare a confliggere con quelle esistenti.
Poniamo di voler creare un file di configurazione in cui indicare le credenziali di accesso al pannello di amministrazione del sito. Creiamo, perciò, un file che potremmo chiamare, ad esempio, admin.php e andremo a popolare come segue:
<?php $config['admin_username'] = 'miniscript'; $config['admin_password'] = '0123456789'; /*nessuna chiusura del tag php*/
Occorre porre attenzione affinché non si creino conflitti fra le chiavi letterali che potrebbero essere presenti in altri file di configurazione.
Una convenzione che personalmente adotto a tale scopo è quella di creare un suffisso alle chiavi corrispondenti al nome del file: come potete notare dall'esempio, essendo che il file si chiama admin.php, tutte le chiavi letterali dell'array $config avranno come nome admin_NAME; mentre, per quanto funzionante, è assolutamente sconsigliato porre nomi troppo generici ($config['username']) dato che, alla lunga potrebbero incorrere in problemi di omonemia.
Per accedere a tali valori all'interno dei nostri model, controller o view occorre prima di tutto eseguire il load (caricamento) di tale file.
Come già detto in altri articoli, il load potra avvenire in automatico, tramite il file autoload o manualmente nel punto in cui sia richiesto nel nostro applicativo.
Nel primo caso, cioè tramite l'autoload, questo file è collocato in /application/config/autoload.php al cui interno troveremo la variabile $autoload['config'] che potrà essere popolata sotto forma di array.
Nel caso del nostro file di configurazione, che abbiamo chiamato admin.php avremo:
<?php $autoload['config'] = array('admin'); // senza indicazione .php
Alternativamente è possibile impiegare la load class direttamenete nel file che richiede i parametri di configurazione:
<?php Class Admin extends CI_Controller{ public function index(){ $this->load->config('admin'); // load echo $this->config->item('admin_username'); echo $this->config->item('admin_password'); }
In questo esempio per avere un feedback immediato del funzionamento ho fatto un echo ma, ovviamente in un caso concreto potremo gestire i valori così otttenuti a seconda delle nostre specifiche esigenze: ad esempio verificare la coincidenza rispetto ai dati inviati da un form.
Olimpio Romanella
Sono un appassionato di Web Developing con un particolare debole per php. Mi dedico principalmente dello sviluppo back-end ed in particolare programmazione lato server con php, sviluppo di database relazionali MySql e progettazione di CMS di piccole e medie dimensioni.
Mi avvalgo del framework javascript Jquery, utilizzando molti dei suoi plugin e nei dei miei progetti utilizzo spesso il framework MVC Codeigniter.