CodeIgniter si basa su un concetto di URL: ciò significa che il controller diventa l’unità centrale di monitoraggio tra vista e modello tramite l’inserimento di un URL nella barra di ricerca del browser. A questo scopo gli sviluppatori creano le cosiddette classi controller (classes). In questo caso si tratta di file PHP, che contengono diverse funzioni per caricare librerie (libraries), estensioni (plugins) oppure classi aiutanti (helper), per realizzare collegamenti alle banche dati, per integrare un modello oppure per ricercare una vista specifica.
Il flusso di applicazione diCodeIgniter si basa quindi sul seguente schema URL di base:
example.com/class/function/parameter
Al dominio (example.com) segue una classe controller che va coinvolta, come anche una specifica funzione controller. La conclusione è costituita da parametri (Parameter) opzionali: questi servono a trasmettere ID o variabili al controller scelto.
Nella pratica un URL di CodeIgniter potrebbe apparire come segue:
example.com/news/article/511
Un URL del genere richiama il controller news presente sul dominio example.com e lo induce a mettere in atto la funzione article (ad esempio per caricare una vista omonima per la visualizzazione dell’articolo). Quali sono i contenuti che devono essere richiamati tramite il modello a partire dal database, sono i parametri opzionali a deciderlo, i quali vengono trasmessi al controller assieme all’URL; in questo esempio un articolo con l’ID 511.
Nella configurazione finale il PHP framework rappresenta l’index.php in ogni URL dell’applicazione:
example.com/index.php/news/article/511
Questo file PHP contiene informazioni riguardo alla posizione dei file core del framework e a dove si trovano le librerie, estensioni, oppure classi aiutanti integrate, e in quale percorso sono i file di applicazione. L’elemento index.php serve quindi all’inizializzazione di tutte le risorse di base.
Se CodeIgniter opera su un server Apache HTTP, index.php può venire rimosso tramite mod_rewrite dagli URL delle applicazioni, per mettere a disposizione degli indirizzi web “puliti” agli utenti finali e ai crawler dei motori di ricerca. Gli sviluppatori inseriscono il seguente blocco di codice nel file .htaccess del server web: