Approfondisci l'uso di Symfony su HTML.it: Symfony per PHP 5: presentazione e installazione, Symfony: gestione di moduli e pagine secondo la logica MVC e Symfony: progettazione un blog.
Sono Simone Carletti ed oggi scopriremo insieme le caratteristiche di un Web framework PHP molto diffuso: Symfony.
Symfony nasce nel 2005 ad opera di una web agency francese di nome SensioLabs che ne estrae le funzionalità a partire da alcuni progetti sviluppati. Il framework richiede PHP 5 ed è distribuito con licenza open source MIT.
Oggi è un framework molto potente. Tra le funzionalità principali c'è da segnalare l'implementazione del pattern MVC , il supporto ad AJAX, scaffolding e caching. Non mancano poi Helper, Logger, ORM e supporto alle metodologie di agile development e extreme programming.
Sotto diversi aspetti è innegabile che Symfony ricordi da vicino un altro web framework molto famoso: Rails. Come quest'ultimo adotta il paradigma convention-over-configuration, utilizza file .yml per la configurazione e la generazione di un nuovo progetto segue una struttura ben predefinita, dove ogni cartella esiste per uno specifico compito.
Abbiamo a disposizione anche un sistema di Command Line Interface molto versatile, chiamato Pake. Il suo nome è legato ad altri prodotti simili come Rake e Make. Pake permette l'esecuzione automatizzata di operazioni di sviluppo, manutenzione o semplici comandi definiti da noi.
L'interazione con i database è affidata ad un ORM esterno che, per impostazione predefinita corrisponde alla libreria Propel. Questa scelta è un argomento spesso discusso nella mailing list ufficiale. Alcuni sviluppatori preferiscono adottare soluzioni alternative come, ad esempio, Doctrine.
Symfony è uno dei pochi Web framework ad offrire uno strumento automatizzato per la creazione di interfacce di amministrazione. In pochi click è possibile generare un back end completo per la gestione del nostro sito a partire dalla struttura delle classi e del modello esistente.
Symfony è estendibile e personalizzabile. È possibile creare plugin per integrare funzionalità non presenti. La directory di plugin ufficiale contiene numerose librerie già sviluppate, pronte all'uso.
Tra i vantaggi di Symfony rientra senz'altro la flessibilità e l'opportunità di sviluppare un'applicazione complessa in tempi notevolmente ridotti, grazie alle numerose librerie a supporto.
Purtroppo Symfony richiede un'attenta ottimizzazione delle applicazioni e l'implementazione di adeguati sistemi di caching, pena un visibile calo di performance nell'esecuzione del progetto.
Attualmente esistono tre rami di sviluppo di Symfony. Il ramo 1.1 è ad oggi quello più indicato per il rilascio in produttività di un nuovo progetto. Per maggiori informazioni è possibile consultare la tabella comparativa sul sito ufficiale del framework.