Symfony

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search
Symfony
software
Logo
Pagina principale di un progetto Symfony
Pagina principale di un progetto Symfony
GenereFramework per applicazioni web
SviluppatoreSensio Labs
Data prima versione22 ottobre 2005
Ultima versione4.3.5 (7 ottobre 2019)
Sistema operativoMultipiattaforma
LinguaggioPHP
LicenzaLicenza MIT
(licenza libera)
Sito web

Symfony è un framework per lo sviluppo di applicazioni web creato nativamente per PHP. È 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, quindi comprende una serie di mezzi per ottenere i risultati voluti immediatamente. Tutto è basato sull'architettura MVC ed ha anche il supporto per sviluppare in AJAX.

Sviluppato in PHP 5.3, è compatibile con i gestori di basi di dati MySQL, PostgreSQL, Oracle e Microsoft SQL Server, sia su piattaforme Windows che Linux-Unix.

Storia[modifica | modifica wikitesto]

Fabien Potencier, fondatore e attuale CEO di Sense Labs, 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, mapattura relazionale ad oggetti con Opel e strutture dati di Ruby on Rails.

La prima versione di Symfony fu rilasciata nel 2005, inizialmente come strumento di sviluppo di Sense Labs. In seguito, fu rilasciato con licenza aperta.

Nel 2012 alcuni componenti di Symfony sono stati trasferiti in Drupal 8.[2]

Symfony è supportato da Sensio Labs (ex Sensio Framework[3]), società francese di formazione, consulenza e servizi sulle tecnologie a sorgente aperto.

Caratteristiche[modifica | modifica wikitesto]

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 SW

La programmazione a oggetti e l'uso dei namespace richiedono come requisito minimo l'utilizzo di PHP 5.3.0 o superiore.

Applicazione[modifica | modifica wikitesto]

Symfony presenta vantaggi che permettono di automatizzare alcune attività dello sviluppo di progetti web, quali[4].

  • 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 delle 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;
  • il paging automatico, l'ordinamento e il filtraggio;
  • 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[modifica | modifica wikitesto]

Sebbene Symfony sia uno stack PHP completo, esso è composto da diversi componenti "disaccoppiati" e quindi riutilizzabili in altri contesti.

Distribuzioni[modifica | modifica wikitesto]

Colore Significato
Rosso Vecchia distribuzione; non supportato
Verde Distribuzione attuale
Blu Distribuzione futura
Versione Data distribuzione Supporto Versione PHP Fine mantenimento Note
1.0 gennaio 2007 3 anni ≥ 5.0 gennaio 2010
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.[5]
2.0[6] luglio 2011[7] ≥ 5.3.2 gennaio 2013
2.1[8] settembre 2012[9] 8 mesi ≥ 5.3.3 maggio 2013
2.2 febbraio 2013[10] 8 mesi dicembre 2013
2.3 maggio 2013[10] 3 anni maggio 2016 LTS
2.4 novembre 2013[10] 8 mesi luglio 2014
2.5 giugno 2014[11] 8 mesi gennaio 2015
2.6 novembre 2014[10] 8 mesi luglio 2015
2.7 maggio 2015[10] 3 anni ≥ 5.3.9 maggio 2018 LTS
2.8 novembre 2015[12] 3 anni novembre 2018 LTS
3.0 novembre 2015[10] 8 mesi ≥ 5.5 [13] luglio 2016
3.1 maggio 2016 8 mesi gennaio 2017
3.2 novembre 2016 8 mesi luglio 2017
3.3 maggio 2017 8 mesi gennaio 2018
3.4 novembre 2017 3 anni novembre 2020 LTS
4.0 novembre 2017[10] 8 mesi ≥ 7.1 [14] luglio 2018
4.1 maggio 2018[10] 8 mesi gennaio 2019
4.2 novembre 2018 8 mesi luglio 2019
4.3 maggio 2019 8 mesi gennaio 2020
4.4 novembre 2019 3 anni novembre 2022 LTS
5.0 novembre 2019 8 mesi ≥ 7.2 luglio 2020

A partire dalla versione 2.0, le distribuzioni beneficeranno di ulteriori sei mesi di supporto, solamente per chiudere eventuali bug inerenti alla sicurezza. Per le versioni LTS, il periodo esteso sarà di dodici mesi[15].

Note[modifica | modifica wikitesto]

  1. ^ versioni del programma, su php.net.
  2. ^ (ES) Drupal 8 integra inizia ad integrare componenti da Symfony 2.0. >
  3. ^ (EN) Discussione sul nuovo nome, su symfony-project.org (archiviato dall'url originale il 22 dicembre 2008).
  4. ^ (EN) F. Zaninotto e Potencier F., The Definitive Guide to symfony, 1ª, Apress, 2007, p. 486, ISBN 978-1-59059-786-6.
  5. ^ Symfony blog - About symfony 1.3 and symfony 1.4
  6. ^ Symfony blog - Why will Symfony 2.0 finally use PHP 5.3?
  7. ^ Symfony 2.0
  8. ^ Symfony developers - towards 2.1
  9. ^ Symfony 2.1.0 released
  10. ^ a b c d e f g h The Release Process
  11. ^ Symfony 2.5.0 released
  12. ^ Transition from Symfony 2.7 to 3.0
  13. ^ Symfony 3.0: The roadmap
  14. ^ Preparing your Applications for PHP 7 with Symfony Polyfills
  15. ^ Which version of Symfony should you use? - Symfony

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Controllo di autoritàGND (DE7604038-0