Programmiamo CodeIgniter per la nostra prima app, compilando il codice del model, del controller e del view con un esempio alla portata di tutti
Ripercorrendo gli appuntamenti dedicati a CodeIgniter, abbiamo visto come funziona il framework PHP e su quale paradigma si basa (MVC, Model View e Controller) e ci siamo poi occupati di connettere il framework con un database creato appositamente per l’occasione.
In questo appuntamento, concluderemo l’introduzione a CodeIgniter, mostrando come programmare i tre elementi principali per dare vita alla nostra prima applicazione Web, andando così a scrivere il codice necessario per il modulo Model, il modulo View e il Controller.
Terminata la stesura di queste tre classi PHP, possiamo vedere subito i risultati ottenuti in un browser e possiamo dirci pronti per passare a una programmazione più matura e completa.
Come per ogni framework, anche per CodeIgniter, sarà la continua pratica a permetterci di raffinare le nostre competenze e la capacità di sviluppare applicazioni sempre più complete.
Non ci resta quindi che procedere con le prime porzioni di codice dedicate alle classi PHP pensate per il model, il controller e il view.
Buona lettura!
Il Model per CodeIgniter
I models sono opzionali in CodeIgniter, ma è bene utilizzarli per una strutturazione più completa dell’applicazione che stiamo creando. In pratica, ogni model definisce delle classi PHP che specificano all’applicazione come lavorare con il database creato in precedenza. Rechiamoci quindi nella cartella di CodeIgniter system/application/models e qui creiamo il file prova_model.php.
Al suo interno, definiamo una classe prova che estende la classe Model e includiamo il costrutto e la funzione chiamata getData. Come? In questo modo:
<?php
class prova_model extends Model {
function Helloworld_model()
{
// Chiamiamo il costruttore Model
parent:: __construct();
}
function getData()
{
//Recuperiamo i dati di righe e colonne delle tabelle del database
$query = $this->db->get(‘data’);
if ($query->num_rows() == 0)
{
show_error(‘Il database è vuoto!’);
}else{
return $query->result();
}
}
}
?>
Il Controller per CodeIgniter
Prima di procedere alla programmazione del Controller, andiamo nella cartella system/application/controllers e cancelliamo il file welcome.php. Apriamo il file system/application/config/routes.php con il nostro editor e impostiamo a prova il default controller, in questo modo:
$route['default_controller'] = "
prova
"
A questo punto, torniamo nella cartella system/application/controllers e creiamo il file prova.php dove definiremo il Controller. Nella funzione di index del controller, dobbiamo caricare il model, effettuare le opportune query al database e passare questi dati ottenuti dalla query alla view. Procediamo quindi così:
<?php
class Prova extends Controller{
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->model(‘prova_model’);
$data[‘result’] = $this->prova_model->getData();
//$data[‘result’] = $this->helloworld_model-> getData();
$data[‘page_title’] = “CodeIgniter App di Prova”;
$this->load->view(‘prova_view’,$data);
}
}
?>
Il view per l’app di prova di CodeIgniter
Ora dobbiamo creare il view per l’app di prova. Cancelliamo il file view di default, andando nella cartella system/application/view/ ed eliminando il file welcome_message.php. Nella stessa cartella, creiamo il file prova_view.php, indicando nell’editor il seguente codice:
<html>
<head>
<title><? echo $page_title?></title>
</head>
<body>
<?php foreach($result as $row):?>
<h3><? echo $row->title?></h3>
<p><? echo $row->text?></p>
<br />
<?php endforeach;?>
</body>
</html>
CodeIgniter alla prova!
A questo punto, avviamo il nostro browser preferito e visitiamo l’indirizzo: indirizzo_IP/nome_cartella_CodeIgniter/index.php/prova/ e vedremo un risultato simile a quanto mostrato nella seguente immagine.