Symfony permette l’implementazione del Model-View-Controller (MVC). Questo modello architetturale suddivide le applicazioni in tre settori:
- Dati e funzionalità centrali, che corrispondono al Model;
- Rappresentazione visiva dei dati prodotti, che corrisponde al View;
- Elaborazione degli input utente, corrispondente al Controller.
L’utilizzo del concetto MVC fornisce un codice di programmazione chiaro e ben strutturato, oltre che un’elevata flessibilità dei diversi componenti, i quali, grazie ad esso, possono essere scambiati e riutilizzati, non essendo collegati a dei dati immessi concreti. A questo punto va però chiarito che nonostante tutto Symfony non appartiene alla squadra dei framework MVC, come sarebbe concepibile pensare, e che non contiene alcun componente integrato del modello.
Doveste iniziare un nuovo progetto con Symfony, mancherà conseguentemente anche la tipica cartella relativa al modello. Con l’aiuto di librerie ORM aggiuntive (ORM sta per Object Relation Mapping), come Doctrine o Propel, entrambe consigliate da SensioLAbs, riuscite ad archiviare nel sistema di database l’oggetto in questione senza problemi e senza dover dipendere da aiuti esterni.
Per realizzare la presentazione (view) della vostra applicazione web, utilizzate il modulo Templating e create i template corrispondenti, i quali, tramite delle funzioni specifiche, potranno poi essere ampliati con l’aiuto dei cosiddetti Helper (oggetti PHP). Il piano di controllo (Controller) porta solitamente il nome di index.php e può essere trovato nella cartella “web”. Invece, per quel che riguarda gli input degli utenti, su Symfony, così come su molti altri framework, si chiamano “Actions”.