Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

La View: template e layout

Le viste del modello MVC: cosa sono i template e i layout in un progetto Symfony
Le viste del modello MVC: cosa sono i template e i layout in un progetto Symfony
Link copiato negli appunti

Il compito del livello View è quello di rendere disponibili all'utente, in un formato a lui comprensibile, i risultati elaborati dalle action del livello controller. In Symfony la view è formata da diverse parti, ciascuna delle quali modificabile in base alle esigenze del programmatore.

I template

Il template è la rappresentazione dei dati elaborati da una determinata action in formato HTML con qualche riga di codice PHP immerso generalmente necessaria per il passaggio dei parametri dalle action e per richiamare gli helper (vedi di seguito).

Listato 7: Un esempio di template

<h1>Biblioteca Comunale</h1>
<p>Nome: <?php echo $nome ?> Cognome: <?php echo $cognome ?></p>
<ul>Indice operazioni:
       <li><?php echo link_to('Cerca libri', 'libri/ricerca') ?></li>
       <li><?php echo link_to('Inserisci nuovo libro', 'libri/inserimento') ?></li>
</ul>

Di solito i template vengono realizzati da persone che curano gli aspetti legati alla GUI e non dai programmatori, dunque è buona norma limitare al minimo il codice PHP inserito in essi e cercare il più possibile di inserire la logica applicativa all'interno delle action. In questo modo si possono gestire anche più template per una singola acion evitando la duplicazione di codice scritto.

Il layout

Il layout è quella parte della view che contiene il codice HTML comune a tutte le pagine. In effetti in ogni progetto web possiamo notare come nella struttura generale di ogni pagina c'è una quantità di codice ripetuto in ciascuna di esse. Allora è piuttosto efficiente implementare un "contenitore" globale e inserire all'interno di questo le parti variabili delle diverse pagine web.

Questo "contenitore" è un file layout.php salvato all'interno della directory templates di ciascuna applicazione. La figura 4 mostra la composizione di una pagina web utilizzando layout e template. Per chiarire meglio questo concetto riportiamo nel listato 8 un esempio di file layout.php che utilizza il template del listato 7. La riga di codice inserita tra i tag <body> </body> serve per ottenere il contenuto del template.

Figura 4: Layout e Template
Layout e Template

Listato 8: Un esempio di layout

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <?php include_http_metas() ?>
    <?php include_metas() ?>
    <?php include_title() ?>
    <link rel="shortcut icon" href="/favicon.ico" />
  </head>
  <body>
       <?php echo $sf_data->getRaw('sf_content') ?>
  </body>
</html>

Symfony mette a disposizione una serie di variabili predefinite per accelerare la scrittura dei template che riportiamo nella tabella di seguito.

Variabile Descrizione
$sf_context Contiene un'istanza di sfContext
$sf_request Contiene un'istanza di sfRequest
$sf_params Contiene i parametri della richiesta
$sf_user Contiene un'istanza di sfUser

Ti consigliamo anche