Symfony2 è un framework MVC scritto in PHP per realizzare applicazioni Web complesse in modo facile e veloce. Il framework sfrutta appieno tutte le funzionalità introdotte dal PHP 5, come ad esempio i namespace, ed incentra tutte le sue potenzialità sulle sue componenti.
Symfony2, infatti, può essere considerato come un insieme di componenti PHP sviluppate per risolvere problemi comuni. Ogni componente di Symfony2 può essere utilizzata indipendentemente dal framework stesso; come succede per alcune delle sue componenti che sono utilizzate da altri progetti molto noti quali Laravel o Drupal.
Tecnicamente definire Symfony2 un framework MVC è in parte errato. Il core del framework non implementa la parte del Model (un po' come accade anche in Zend); è lasciato allo sviluppatore il compito di strutturare la logica dell'applicazione in base alle sue esigenze. Generalmente si opta per un'implementazione del modello attraverso un ORM come Doctrine.
Requisiti
Il requisito fondamentale per installare Symfony2 è una versione di PHP superiore o uguale alla 5.3.3. È consigliabile comunque una release superiore o uguale alla 5.3.8 a causa di problemi noti con alcuni rilasci precedenti.
È consigliabile, inoltre, di installare Composer sul nostro sistema. Esso è un gestore di pacchetti per PHP, un po' come NPM per NodeJS, Bower o il vecchio PEAR. Per una guida all'installazione di Composer, rimando alla documentazione ufficiale. È comunque preferibile affidarsi ad un software di gestione pacchetti in maniera da avere sempre aggiornate tutte le dipendenze della nostra applicazione, senza essere costretti ad eseguire manualmente tale procedura.
L'ultimo requisito necessario è una console dei comandi. Se si lavora su sistemi *nix (Mac o Linux) è sufficiente il terminale di default, sui sistemi operativi Windows è preferibile una console un po' più avanzata (ad esempio Cigwin o la console integrata in Git).
Struttura di un'applicazione Symfony2
Prima di entrare nel vivo del framework, vediamo insieme la struttura e le cartelle di un'applicazione sviluppata con Symfony2.
Le cartelle principali dell'applicazione sono:
Cartella | Descrizione |
---|---|
app | contiene i file di configurazione, cache , log , alcuni template di base e la classe AppKernel , la classe principale dell'applicazione. |
bin | contiene i file eseguibili da riga di comando. Ad esempio phpunit se decideremo di eseguire test unitari e/o funzionali per la nostra applicazione. |
src | contiene l'applicazione vera e propria. Tutto il codice di un'applicazione risiede in un Bundle, una sorta di plugin per chi proviene da Symfony1. Nella nostra applicazione, quindi, creeremo un nostro Bundle in cui inseriremo tutto il codice PHP, i template e i file di configurazione. |
vendor | contiene i bundle e le librerie di terze parti. Tutte le componenti di Symfony2 sono presenti all'interno di questa cartella. |
web | contiene i file statici (immagini, JavaScript, regole di stile) dell'applicazione e, all'interno della cartella bundles provenienti dai vari bundle. Contiene, inoltre, i file app.php e app_dev.php che, come vedremo, sono i due file che caricano la nostra applicazione. |
Nota: In alcune installazioni la struttura può differire leggermente. Ad esempio le cartelle di log
e cache
possono trovarsi all'interno di una cartella var
; mentre il file di console può trovarsi all'interno della cartella bin
.
Ora che abbiamo introdotto Symfony2 e descritta la struttura di un'applicazione tipo, nella prossima lezione vedremo come installare il framework sulla nostra macchina.