Symfony è un insieme di componenti PHP e un framework per lo sviluppo di applicazioni web.
È distribuito sotto licenza MIT, dunque open source, e il suo scopo è quello di aiutare gli sviluppatori web a creare potenti applicazioni in breve tempo.
È basato sulla filosofia perché reinventare la ruota ogni volta e su vari Design pattern, coniugando solidità e velocità di sviluppo.
Inizialmente era basato sull'architettura MVC, ma dalla versione 2 in poi predilige l'approccio "Request/Response", ispirato al protocollo HTTP.
Sviluppato inizialmente in PHP 5.0, poi successivamente aggiornato fino a PHP 8.0, è compatibile con i gestori di basi di dati MySQL, PostgreSQL, Oracle e Microsoft SQL Server, sia su piattaforme Windows sia Linux-Unix.
Storia
Fabien Potencier, fondatore e attuale CEO di SensioLabs, quando nel 2004 fu rilasciata la prima versione di PHP 5[1], ritenne che gli strumenti di sviluppo disponibili avessero raggiunto uno stadio di maturazione sufficiente da poter essere integrati in un framework metodologico comune. Dopo circa un anno di lavoro, sviluppò il nucleo di Symfony. basato su approccio architetturale di Model-view-controller, mappattura relazionale ad oggetti con Propel e strutture dati di Ruby on Rails.
La prima versione di Symfony fu rilasciata nel 2005, inizialmente come strumento di sviluppo di SensioLabs. In seguito, fu rilasciato con licenza aperta.
Nel 2012 alcuni componenti di Symfony sono stati trasferiti in Drupal 8.
Symfony è supportato da SensioLabs (ex Sensio Framework[2]), società francese di formazione, consulenza e servizi sulle tecnologie a sorgente aperto.
Caratteristiche
Symfony presenta i seguenti vantaggi:
indipendente dal particolare DBMS adottato
semplicità di installazione e configurazione su sistemi Windows e Linux-Unix
stabilità e possibilità di personalizzazione per applicazioni di lungo termine
codice sorgente di facile lettura, manutenibile e documentato con PhpDocumentor
ambiente di sviluppo con interfaccia a linea di comando, che facilita la generazione di codice
librerie integrabili con quelle di altri produttori software
Applicazione
Symfony presenta vantaggi che permettono di automatizzare alcune attività dello sviluppo di progetti web, quali[3].
Tra la versione 2.0 e la 4.3, le distribuzioni hanno beneficiato di ulteriori sei mesi di supporto, solamente per chiudere eventuali bug inerenti alla sicurezza. Per le versioni LTS, il periodo esteso (di dodici mesi[28]) è tuttora in vigore.