venerdì 8 marzo 2013

MVC con Codeigniter e server WAMP

 vai all' indice generale

MVC con Codeigniter e server WAMP

MVC è un acronimo che indica modello-controllo-vista e intende un modello di progettazione che separa la modellizzazione dei dati (il modello) dalla logica di business (il controllo) e dalla presentazione dei dati (la vista).

CodeIgniter è specificatamente ideato per favorire la progettazione MVC.
Vediamo come realizzare un semplice progetto che rispetta il pattern MVC con CideIgniter.

Creiamo un progetto nuovo come indicato in questa sezione : Creazione di un progetto PHP con Eclipse su server WAMP chiamato TestMVC.

Creiamo tre classi php :

MVCModello.php   in application\controllers
MVCControllo.php in application\models
MCVVista.php        in application\views

Il cui codice è :
MVCControllo.php :
<?php
class MVCControllo extends CI_Controller {
       public function index()
       {
             $this->load->model("MVCModello");
             $apostoliVariabile = $this->MVCModello->get_lista_apostoli();
             $data["apostoli"] = $apostoliVariabile;
             $this->load->view('MVCVista',$data);
       }
}

MVCModello.php :
<?php
class MVCModello extends CI_Model{
   function get_lista_apostoli(){
   $list = array('Luca', 'Giovanni', 'Matteo', 'Paolo', 'Antonio','Marco','Giuseppe');
        return $list;
       }
}?>

MCVVista.php        :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Apostolorum</title>
<style type="text/css">
body {
       background-color: #fff;
       margin: 40px;
       font-family: Lucida Grande, Verdana, Sans-serif;
       font-size: 14px;
       color: #4F5155;

}
a {
       color: #003399;
       background-color: transparent;
       font-weight: normal;
}
h1 {
       color: #444;
       background-color: transparent;
       border-bottom: 1px solid #D0D0D0;
       font-size: 16px;
       font-weight: bold;
       margin: 24px 0 2px 0;
       padding: 5px 0 6px 0;
}
code {
       font-family: Monaco, Verdana, Sans-serif;
       font-size: 12px;
       background-color: #f9f9f9;
       border: 1px solid #D0D0D0;
       color: #002166;
       display: block;
       margin: 14px 0 14px 0;
       padding: 12px 10px 12px 10px;
}
</style>
</head>
<body>
       <h1>Et dixerunt apostoli ... </h1>
       <?php
       echo $apostoli[0], '<br>';
       echo $apostoli[1], '<br>';
       echo $apostoli[2], '<br>';
       ?>
       <?php
       echo 'multis aliis ... ';
       ?>
</body>
</html>

Il risultato sarà  visibile al link : http://localhost:8080/CI4/index.php/MVCControllo



Cerchiamo di capire cosa abbiamo scritto e come è stato implementato il pattern MVC.
La classe MVCControllo gestisce il flusso logico dell'applicazione. In questo semplice esempio la pagina di partenza è proprio MVCControllo. Appena entrati si invoca il metodo di partenza (nel nostro caso è l'unico presente) , index(). Dentro index :
  • viene caricato il modello
  • viene riempita la variabile php $apostoliVariabile che prende i dati dal modello
  • i dati vengono caricati in una struttura ($data["apostoli"]) da passare alla vista
  • si carica la vista
Quindi se vogliamo alterare il flusso logico, ad esempio recuperando i dati da altri modelli o gestendo la navigazione dobbiamo intervenire qui.

La classe MVCModello serve a produrre i dati. In questo caso ha un solo metodo che restituisce una lista di elementi cablati al suo interno. Se volessimo ad esempio recuperare i dati da un database o da altre sorgenti dobbiamo intervenire qui.

Infine la vista produce la rappresentazione dei dati. I dati vengono recuperati dalla struttura indicata nel controllo la presentazione è molto semplice :$apostoli[0] .
Se vogliamo cambiare la grafica della pagina e la presentazione dobbiamo intervenire qui.

 vai all' indice generale

Nessun commento:

Posta un commento