back to top

CodeIgniter: URI Routing e Caching

L’URI Routing riguarda la relazione tra composizione di un’URL e le corrispondenti classi e funzioni di un Controller; come analizzato in precedenza, la struttura di un’URL "segmentata" in CodeIgniter è la seguente:

miosito.com/classe/funzione/identifcatore
Questa struttura non è obbligatoria e può essere sostituita con un’altra grazie ad una procedura denominata rimappatura delle URI; le regole che presiedono alla mappatura delle URI sono memorizzate in un file posto sul percorso:
system/application/config/routes.php
All’interno del codice di questo file vi è un vettore denominato $route che consente di specificare delle regole (routes) personalizzate per il routing utilizzando anche strumenti per abbreviare la digitazione come per esempio metacaratteri (wildcards) ed espressioni regolari.

A proposito di quanto detto, si analizzino i seguenti esempi:

// rimappatura con sostituzione di un singolo segmento
$route['pagina'] = "sito";
In questo caso la regola di routing impone che il termine "pagina" sia rimappato nel primo segmento dell’URI tramite la classe "sito".
// rimappatura di più segmenti
$route['pagina/viaggi'] = "sito/news/10";
In questo secondo caso un’URI che contiene i segmenti "pagina/viaggi" sarà rimappata dalla classe "sito" e dal metodo "news", mentre l’identificatore sarà impostato su "10".
// rimappatura con metacarattere
$route['viaggi/:any'] = "sito/percorsi";
In questo terzo caso un’URL contenente "viaggi" come primo segmento e nessuna voce come secondo segmento sarà rimappata dalla classe "sito " e dal metodo "percorsi".
// rimappatura con espressioni regolari
$route['viaggi/([a-z]+)/(\d+)'] = "$1/id_$2";
Nell’ultimo caso analizzato, un’URI verrà abbreviata con il suo identificatore, per esempio "viaggi/spagna/10" diventerà per rimappatura semplicemente "id_10".

La navigazione efficiente dei siti creati con CodeIgniter non è garantita soltanto dalla creazione di URL user friendly, ma anche da un sistema integrato di caching (memorizzazione temporanea degli output) che permette alte prestazioni e tempi di caricamento della pagine più brevi. Di per sé l’ultilizzo di questo framework grantisce un buon livello in fatto di performances, ma la velocità di navigazione dipende anche da elementi esterni come per esempio il traffico generato da un sito Web, la banda disponibile, la configurazione del Web server e le disponibilità hardware della macchina ospitante. Il caching delle pagine consente di limitare al massimo l’influenza di questi elementi esterni sulla velocità di caricamento delle pagine.

In CodeIgniter il caching può essere abilitato sfruttando anche alcuni strumenti disponibili per l’impostazione del suo funzionamento, l’utilizzatore potrà per esempio definire per quanto tempo una determinata pagina dovrà rimanere memorizzata in cache prima di essere sostituita da una copia più recente dello stesso documento.

Dal momento in cui una pagina viene caricata per la prima volta, il corrispondente file di cache verrà scritto all’interno del percorso:

system/cache
Le richieste seguenti verso la stessa pagina determineranno il caricamento della copia presente in cache a meno che questa non sia scaduta, in questo caso infatti essa sarà cancellata e ricaricata prima di essere inviata al browser.

Abilitare il caching richiede una procedura estremamente semplice che deve essere effettuata dall’interno del codice di un Controller utilizzando la seguente sintassi:

// abilitazione della cache
$this->output->cache(n);
"n" rappresenta un valore numerico pari al numero di minuti che una pagina dovrà rimanere memorizzata in cache.

Pubblicitร 
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.