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 distribuita la prima versione di PHP 5, 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, mappatura relazionale ad oggetti con Propel e strutture dati di Ruby on Rails.

La prima versione di Symfony fu prodotta 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), 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.

traduzione dell'interfaccia testuale, dei dati e della localizzazione del software; rilascio dell'interfaccia, basata su modelli e layout alla portata di sviluppatori HTML, privi della conoscenza del framework; convalida automatica dei moduli, per garantire una migliore qualità dei dati presenti nei database; gestione della cache, per ridurre l'utilizzo della larghezza di banda e il carico di elaborazione del server; instradamento tramite URL intelligenti, per fornire un'esperienza di navigazione user-friendly; l'autenticazione tramite credenziali di accesso.

I plugin di Symfony hanno un alto livello di estensibilità e il programma è interoperabile con AJAX.

Sul sito ufficiale sono disponibili il manuale in formato elettronico, numerosi esempi e tutorial per imparare a creare applicazioni in breve tempo.

Componenti Sebbene Symfony sia uno stack PHP completo, esso è composto da diversi componenti "disaccoppiati" e quindi riutilizzabili in altri contesti. Twig: template engine Doctrine (o Propel): PHP ORM Monolog: PHP Logging Symfony Mailer: mailing

Distribuzioni

Colore Significato Rosso Vecchia distribuzione; non supportato Arancione Vecchia distribuzione; ancora in supporto Verde Distribuzione attuale Blu Distribuzione futura

Versione Data distribuzione Supporto Versione PHP Fine mantenimento Note 1.0 gennaio 2007 3 anni ≥ 5.0 gennaio 2009 1.1 giugno 2008 1 anno ≥ 5.1 giugno 2009 patch di sicurezza fino a giugno 2010 1.2 dicembre 2008 1 anno ≥ 5.2 novembre 2009 1.3 novembre 2009 1 anno novembre 2010 1.4 novembre 2009 3 anni gennaio 2013 identico alla versione 1.3, ma senza caratteristiche deprecate. 2.0 luglio 2011 ≥ 5.3.2 gennaio 2013 2.1 settembre 2012 8 mesi ≥ 5.3.3 maggio 2013 2.2 febbraio 2013 8 mesi dicembre 2013 2.3 maggio 2013 3 anni maggio 2016 LTS 2.4 novembre 2013 8 mesi luglio 2014 2.5 giugno 2014 8 mesi gennaio 2015 2.6 novembre 2014 8 mesi luglio 20152.7 maggio 2015 3 anni≥ 5.3.9 maggio 2018 LTS2.8 novembre 2015 3 anni novembre 2018 LTS3.0 novembre 2015 8 mesi ≥ 5.5 luglio 20163.1 maggio 2016 8 mesi gennaio 20173.2 novembre 2016 8 mesi luglio 20173.3 maggio 2017 8 mesi gennaio 20183.4 novembre 2017 3 anni novembre 2020 LTS4.0 novembre 2017 8 mesi ≥ 7.1 luglio 20184.1 maggio 2018 8 mesi gennaio 20194.2 novembre 2018 8 mesi luglio 20194.3 maggio 2019 8 mesi gennaio 20204.4 novembre 2019 3 anni novembre 2022 LTS5.0 novembre 2019 8 mesi ≥ 7.2 luglio 20205.1 maggio 2020 8 mesi gennaio 20215.2 novembre 2020 8 mesi luglio 20215.3 maggio 2021 8 mesi gennaio 20225.4 novembre 2021 3 anni febbraio 2029 LTS6.0 novembre 2021 14 mesi ≥ 8.0 gennaio 20236.1 maggio 2022 8 mesi ≥ 8.1 gennaio 20236.2 novembre 2022 8 mesi luglio 20236.3 maggio 2023 8 mesi gennaio 20246.4 novembre 2023 3 anni novembre 2026 LTS7.0 novembre 2023 8 mesi ≥ 8.2 luglio 20247.1 maggio 2024 8 mesi gennaio 20257.2 novembre 2024 8 mesi luglio 2025 7.3 maggio 2025 8 mesi gennaio 2026 7.4 novembre 2025 3 anni gennaio 2026 LTS8.0 novembre 2025 8 mesi ≥ 8.4 gennaio 20268.1 maggio 2026 8 mesi gennaio 20278.2 novembre 2026 8 mesi luglio 2027

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) è tuttora in vigore.

Note

Altri progetti

Collegamenti esterni

Categoria:Framework in PHP