Symfony: un framework PHP versatile con una grande community

L’azienda di software francese SensioLabs ha rilasciato nell’ottobre 2015 il framework open source Symfony, il quale era stato inizialmente sviluppato con il nome di Sensio Framework. Il nuovo nome, scritto decisamente in maniera insolita, risulta dall’intenzione di riuscire a mantenere il vecchio prefisso “sf”. Lo sprone che ha portato allo sviluppo del framework è da ricondurre al precedente rilascio di Ruby on Rails, un anno prima, e il conseguente desiderio del team di sviluppo di realizzare una piattaforma di sviluppo comparabile per i progetti in linguaggio PHP. Da allora SensioLabs ha continuato a sviluppare con regolarità il framework Symfony. A conferma di ciò nel 2011 è stato rilasciato Symfony 2, che ha introdotto una struttura modulare al framework.

Cos’è Symfony?

Symfony è una collezione di circa una trentina di librerie PHP, scaricabili ed utilizzabili sia come pacchetto sia singolarmente. Oltre a queste componenti standard esistono dei moduli aggiuntivi, che servono a espandere il framework o che, come quelle standard, possono essere utilizzate separatamente. Stando ai dati di SensioLabs, negli ultimi 10 anni si sono già registrati più di 500 milioni di download dei singoli pacchetti o anche dell’intero framework, il che si riflette sulla sua diffusione generale. Numerosi progetti come ad esempio il CMS Drupal, lo strumento di web analisi Piwik o il software per i forum phpBB, fanno tutti affidamento sui componenti di Symfony. Tutti i pacchetti del framework sono disponibili e scaricabili gratuitamente sulla pagina officiale.

Symfony: introduzione ai componenti del web framework

Se Symfony serve da base di sviluppo per progetti web di tutti i tipi, lo si deve soprattutto alla sua struttura modulare. Ogni modulo, con la propria funzione, non dipende dagli altri componenti, garantendo così un elevato grado di flessibilità e di ampliabilità al framework. In questo modo, nel caso in cui necessitiate di un’ampia gamma di funzioni per il vostro progetto web, potete utilizzare Symfony come Full Stack Framework.

Inoltre avete la possibilità di mettere assieme la vostra libreria Symfony personalizzata o di creare una versione più leggera del framework. In questo modo i componenti si adattano in modo ottimale alle esigenze della vostra applicazione web, indipendentemente che si tratti di un complesso progetto aziendale o di un semplice sito web. Contemporaneamente avete la possibilità di aggiungere o eliminare determinati moduli, purché questo non vada contro le condizioni generali di utilizzo del framework.

Qui di seguito vi presentiamo alcuni dei componenti standard tra i quali potete scegliere:

  • Asset: modulo per la generazione di URL e per il versioning (gestione delle versioni) di file immagine, di fogli di stile CSS e di programmi JavaScript;
  • ClassLoader: ClassLoader si assicura che le classi PHP selezionate vengano caricate automaticamente;
  • Debug: mette a disposizione gli strumenti per un controllo di debugging, permettendo di identificare e classificare eventuali errori nel codice PHP;
  • DependencyInjection: permette di definire gli standard per la creazione degli oggetti per il progetto in questione;
  • EventDispatcher: componenti elementari, che regolano, sotto forma di eventi, la comunicazione dei singoli moduli tra di loro;
  • Form: contiene strumenti con i quali produrre con semplicità dei moduli HTML riutilizzabili;
  • Templating: un tool per la creazione di un sistema di template;
  • Translation: modulo per l’internazionalizzazione del vostro progetto;
  • Validator: vi offre la possibilità di convalidare le classi prodotte;
  • Yaml: carica e archivia i vostri file con estensione .yml.
Consiglio

Sapevate che Symfony e Laravel sono tra i framework PHP più popolari? Vi mostriamo cosa li rende così validi.

Il concetto del Model-View-Controller per la strutturazione dell’applicazione web

Symfony permette l’implementazione del Model-View-Controller (MVC). Questo modello architetturale suddivide le applicazioni in tre settori:

  • Dati e funzionalità centrali, che corrispondono al Model;
  • Rappresentazione visiva dei dati prodotti, che corrisponde al View;
  • Elaborazione degli input utente, corrispondente al Controller.

L’utilizzo del concetto MVC fornisce un codice di programmazione chiaro e ben strutturato, oltre che un’elevata flessibilità dei diversi componenti, i quali, grazie ad esso, possono essere scambiati e riutilizzati, non essendo collegati a dei dati immessi concreti. A questo punto va però chiarito che nonostante tutto Symfony non appartiene alla squadra dei framework MVC, come sarebbe concepibile pensare, e che non contiene alcun componente integrato del modello. Doveste iniziare un nuovo progetto con Symfony, mancherà conseguentemente anche la tipica cartella relativa al modello. Con l’aiuto di librerie ORM aggiuntive (ORM sta per Object Relation Mapping), come Doctrine o Propel, entrambe consigliate da SensioLAbs, riuscite ad archiviare nel sistema di database l’oggetto in questione senza problemi e senza dover dipendere da aiuti esterni. Per realizzare la presentazione (view) della vostra applicazione web, utilizzate il modulo Templating e create i template corrispondenti, i quali, tramite delle funzioni specifiche, potranno poi essere ampliati con l’aiuto dei cosiddetti Helper (oggetti PHP). Il piano di controllo (Controller) porta solitamente il nome di index.php e può essere trovato nella cartella “web”. Invece, per quel che riguarda gli input degli utenti, su Symfony, così come su molti altri framework, si chiamano “Actions”.

Symfony: PHP come calamita per gli utenti

Symfony è una collezione di diverse librerie PHP, perciò è necessario che abbiate installato questo linguaggio di scripting per poter usufruire del framework. Attualmente per la versione Symfony 2.8 è necessario quantomeno la versione PHP 5.3.9. Symfony 3.1 e 3.2 necessitano della versione PHP 5.5.9 o di una più recente. Sin dall’inizio il team di sviluppo di SensioLabs ha avuto come obiettivo quello di creare una collezione di componenti per i progetti PHP, che potesse concorrere con i comparabili framework in altri linguaggi di programmazione. In particolare Ruby on Rails ha imposto agli sviluppatori francesi di orientarsi verso la struttura del celebre framework Ruby, soprattutto per quel che riguarda la scelta e la gestione dei singoli componenti. Lo sviluppo successivo e il successo del framework Symfony sono dunque strettamente connessi alla storia del linguaggio di scripting. Essendo che il PHP è disponibile come linguaggio open source e che gode da sempre grande apprezzamento tra gli addetti ai lavori, negli ultimi anni diversi sviluppatori hanno contribuito all’ottimizzazione. Il notevole aumento delle performance, legato al PHP 7, lascia presumere inoltre che ci saranno degli effetti positivi anche sulle prestazioni delle future applicazioni Symfony.

La compatibilità con le versioni precedenti e quelle LTS promettono continuità

A partire dal 2013 ogni sei mesi viene rilasciata una nuova versione di Symfony, e tutti gli utenti che si sono registrati a SensioLabsConnect, ovvero la community, vengono prontamente informati per e-mail a ridosso della data di rilascio. L’uscita semestrale di un upgrade del framework può dare di primo acchito l’impressione che sia richiesto un impegno continuo, in particolare per le applicazioni web più complesse. Tuttavia SensioLabs offre adeguate soluzioni che garantiscono la necessaria continuità al framework e alle applicazioni sviluppate:

  • Compatibilità con le versioni precedenti: tutte le versioni di Symfony a partire dalla 2.3 si distinguono per la loro compatibilità con le versioni precedenti. Ciò significa che la funzionalità delle applicazioni sviluppate viene garantita anche passando ad una versione più recente. Tuttavia vi sono delle eccezioni per le quali la promessa di compatibilità illimitata non è valida. Inoltre le pubblicazioni più grandi come Symfony 3.0, 4.0, ecc., sono escluse da questa garanzia.
  • Supporto a lungo termine: solitamente le versioni Symfony vengono supportate per 8 mesi. Ma con la versione 2.3 SensioLabs è stata rilasciata la prima edizione di Symfony con supporto a lungo termine. Queste versioni con supporto a lungo termine sono pianificate per due anni e garantiscono update per 36 mesi per i bug, e 48 mesi per le patch di sicurezza. In aggiunta alla seconda versione di Symfony con supporto a lungo termine, ovvero la 2.7, anche la successiva versione, la 2.8, è stata dotata di un periodo di supporto prolungato.
  • “Continuous Upgrade Path” per la versione 3.0: il team di sviluppo ha unito il concetto del Continuous Upgrade Path (che in italiano potrebbe essere chiamato processo di migrazione continuo) al passaggio all’ultima versione principale di Symfony, la 3.0. In questo modo potete inserire riferimenti dettagliati per le righe di codice troppo elaborate nelle versioni 2.x (ovvero: 2.1, 2.2, e così via) e adattarle continuamente ai nuovi valori. A questo punto potete dunque iniziare l’upgrade alla nuova versione del framework per la vostra applicazione web.

I vantaggi e gli svantaggi del framework Symfony

In passato la scelta del framework PHP adatto era equiparabile alla ricerca dell’ago in un pagliaio: il desiderio di un set di librerie dalle prestazioni elevate per il linguaggio di programmazione web preferito ha portato allora sviluppo di numerosi framework, i quali erano adatti in maniera diversa ai progetti più disparati. Ma solo una manciata di framework, tra i quali anche Symfony, sono riusciti grazie ai continui progressi a convincere numerosi sviluppatori PHP.

Il framework punta soprattutto alla strutturazione e al collegamento dei singoli moduli, con l’aiuto dei quali è possibile realizzare una grande varietà di diverse applicazioni web, e perciò gode tutt’ora del benestare della community. Con le versioni che vantano del supporto a lungo termine e la promessa di offrire la miglior compatibilità possibile con le altre versioni, il team di sviluppo di SensioLabs offre tutto ciò che è necessario per garantire la continuità dei progetti Symfony.

Nonostante i supporti e gli aiuti offerti, il passaggio ad una nuova versione del framework e gli adattamenti di codice dell’applicazione sviluppata con Symfony derivanti dal passaggio da una versione all’altra, possono rappresentare talvolta un vero e proprio ostacolo. Alla fine dei conti anche la complessità rappresenta un grande problema del framework PHP. Vero è che trovate tutta la documentazione e le spiegazioni necessarie, ma ciononostante per gli utenti meno esperti è difficile prendere confidenza con il framework Symfony. Inoltre il framework Symfony presenta dei punti deboli per quanto riguarda le performance, anche in comparazione ad altri framework PHP.  A questo riguardo il comune utilizzo della libreria ORM Doctrine, che appesantisce molto la funzionalità, gioca un ruolo fondamentale.

Per chi è più adatta la collezione di componenti PHP?

Tutti i moduli di Symfony si distinguono per il fatto che funzionano sia singolarmente sia in connessione tra di loro. Ma con Symfony non si tratta di un pacchetto di componenti standard che vi costringe a prendere tutto o niente, al contrario potete comporre il vostro micro framework, contenente solo i componenti da voi scelti. In questo modo evitate di dover lavorare con una struttura di librerie sovraccarica, che supera di gran lunga le esigenze del progetto da sviluppare.

D’altro canto Symfony è anche scalabile e può essere velocemente configurata, tramite l’aggiunta di altri moduli, in modo da poter essere utilizzabile per progetti web molto complessi. A dimostrazione di ciò è il fatto che ad utilizzare Symfony non sono solo numerose applicazioni web, ma anche il sito web del famosissimo servizio streaming di musica Spotify o, per citare un altro esempio celebre, anche il sito web della famosa rivista di moda Vogue usufruisce del framework PHP.

Il framework Symfony rappresenta la scelta giusta per voi nel caso in cui lavoriate già con il PHP e desideriate poter contare su una grande flessibilità. Per poter utilizzare in maniera corretta le singole librerie è necessaria ben più di una conoscenza basilare del linguaggio di scripting PHP. Inoltre è indispensabile tenere sempre presente il tempo richiesto per imparare a conoscere le peculiarità del framework; una volta fatto allora sì che potrete godervi tutti i benefici dell’aver scelto Symfony come framework per la vostra presenza web.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top