Primi passi con CodeIgniter (parte 2)

Il manuale di CodeIgniter definisce il controller così:

A Controller is simply a class file that is named in a way that can be associated with a URI.

In realtà il controller nel paradigma MVC è quello che si occupa di gestire l’input e l’output dell’utente creando una sorta di “ponte” tra model e view. In effetti il controller in CodeIgniter è entrambe queste cose.

Immaginiamo di dover scrivere un’applicazione per la gesitione di un magazzino. Scriveremo allora una classe controller chiamata Magazzino simile a questa:

class Magazzino extends Controller {
  function elenco() {
    // elenca tutto il contenuto del magazzino
  }

  function scaffale($codice_scaffale) {
    // elenca il contenuto di un determinato scaffale del magazzino
  }
}

Salvando questa classe nella cartella system/application/controller/magazzino.php automaticamente CodeIgniter renderà disponibile l’output dei due metodi che abbiamo scritto rispettivamente agli indirizzi: misito.com/index.php/magazzino/elenco e miosito.com/index.php/magazzino/scaffale/a12.

In particolare nel secondo caso passerà alla funzione scaffale il codice scaffale ‘a12′.

Ovviamente si possono passare più parametri alle funzioni che ne hanno bisogno continuando ad aggiungerli separati da /. Si può anche migliorare la leggibilità degli indirizzi rimuovendo “index.php” con un htaccess simile a:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Ma non basta, perchè CodeIgniter ci permette anche di organizzare i controller in cartelle e sottocartelle o di definire nuove regole di “routing” aggiungendo regole al file system/application/config/routes.php.

Per queste ed altre funzioni avanzate, rimando alla guida ufficiale di CodeIgniter, in particolare alla pagina Controllers e URI Routing.

Alla prossima lezione, in cui parleremo del Model.

Un commento

  1. Pubblicato 28 Agosto 2008 alle 17:07 | Permalink

    Complimenti per la spiegazione e segnalazione…proverò questo CodeIgniter!

    P.S. Complimenti per il sito…

Scrivi un commento

La tua e-mail non sarà mai pubblicata o ceduta ad altri. I campi obbligatori sono contrassegnati con un *

*
*