Introduzione a Symfony Framework

Articolo introduttivo a Symfony, per affrontare con lo spirito giusto uno dei migliori (ma complessi) framework PHP in circolazione


Se vi state avvicinando a Symfony per la prima volta, soprattutto se non avete familiarità con strumenti di tale portata, vorrei dirvi due paroline, giusto quel paio di consigli che mi sarebbe piaciuto ricevere quando è toccato a me imparare.

Che cos’è: Components e Framework

Innanzitutto bisogna sapere che il progetto Symfony è suddiviso in due parti: Symfony Components e Symfony Framework. Il primo è un insieme di utilities, mentre il secondo è il framework vero e proprio, che integra questi componenti in un unico progetto strutturato.

Sia ben chiaro che Symfony Components è un insieme di librerie che possono essere integrate in un qualsiasi progetto PHP e quindi sono del tutto indipendenti dal framework. Sono utilities molto ben fatte e usate in una marea di progetti, come anche Laravel, attualmente il maggior concorrente di Symfony. Molti si confondono credendo che Laravel sia costruito su Symfony, ma in realtà si tratta di due progetti differenti che usano alcuni Components in comune. Sono comprese librerie per il routing, per il templating, per le validation e così via. Qui trovate un elenco completo (in inglese):

Per non complicarci la vita, d’ora in poi, quando dico Symfony mi riferisco al framework. A proposito, si chiama Symfony, non Symphony, porca di quella miseriaccia.

Calma e sangue freddo

Symfony è un leader indiscusso tra i framework PHP, e lo preferirei a tutti i suoi concorrenti altre mille e una volte. Giunto alla terza versione (ma si parla già della quarta), vanta una community importante, un blog e un’ottima documentazione.

Mi sono avvicinato a Symfony dopo qualche anno di programmazione di puro PHP, trovandomi di fronte ad un ambiente molto più complesso di ciò a cui ero abituato. Ok, non mi aspettavo che fosse tutto rose e fiori, ma pensavo che dovessi scaricare un pacchetto zip pieno di file PHP su cui avrei dovuto mettere mano, invece no, mi sono trovato di fronte a Composer, PEAR, Twig, yml, SSH. Insomma ero disorientato, anche perché nessuno mi aveva mai parlato di templating, gestori di pacchetti e quant’altro. Fortunatamente da lì a poco ho intrapreso un tirocinio in un’azienda, grazie al quale ho preso confidenza con molti degli strumenti utilizzati in ambito professionale.

Insomma, questo per dirvi che è normale quel senso di spaesatezza, se siete dei novizi con strumenti di tale portata. L’importante è non scoraggiarsi e cercare di capire cosa si sta facendo, in ogni momento. Tenetelo a mente, non è uno slogan motivazionale.

Approccio allo studio

Ora veniamo al dunque. Symfony non è semplice, soprattutto per chi non ha molta dimistichezza con certi strumenti, ma non è impossibile. Qual è il miglior modo per imparare? Credo dipenda da persona a persona. C’è chi ama imparare dai libri, chi con i tutorial, chi con altro, ma indipendentemente dal vostro metodo, sappiate sempre che la vostra migliore amica sarà la documentazione. Leggetela scrupolosamente e non lasciate nulla al caso (nemmeno le virgole), perché è molto ben fatta. Purtroppo il materiale in italiano scarseggia, tranne che su Zombie Process (uhuhuhuh) e, a proposito della lingua, potrebbe essere un problema non conoscere l’inglese, perché subito dopo la documentazione, i vostri migliori amici sono due: StackOverflow e GitHub.
Sul sito ufficiale trovate molto materiale aggiuntivo, come quello delle Best Practice e, se volete rimanere costantemente aggiornati sulle ultime novità, trovate anche un blog.

Da quale versione cominciare?

Molti credono che la cosa migliore sia sempre iniziare da una LTS, ma non è necessariamente così, per cui valutate bene il vostro caso! L’importante è avere sempre una versione stabile e supportata, dopo di che, prima di cominciare un nuovo progetto, date un’occhiata alla roadmap ufficiale di Symfony.

Nel momento in cui scrivo, l’ultima LTS è la versione 2.8.26, ma lasciatemelo dire, trovo che sia da pazzi iniziare un nuovo progetto con Symfony 2. Tenete presente che c’è una versione stabile in Symfony 3, consigliata da Symfony (al centro), e che tra poco uscirà la prima LTS di Symfony 3! Se questa terminologia vi è estranea, leggete come funziona il versionamento di un software.

Faccio una considerazione più azzardata. Lì in basso c’è la sezione Symfony version checker: controllate la data di uscita della prossima major release! Ad esempio, nel momento in cui scrivo, lo strumento mi dice che la prima versione stabile di Symfony 4 uscirà a breve, per cui mi fermerei un attimo a valutarla, qualora dovessi iniziare un nuovo progetto. Ripeto, l’importante è avere una versione stabile sotto i piedi.

Per scegliere cosa fare, buttiamo un’occhio alla panoramica delle versioni di Symfony.

Sia chiaro che l’unica differenza tra una versione stabile non LTS e una LTS è unicamente la durata del supporto. Nel primo caso dura 8 mesi, nel secondo 36. E’ evidente che con una LTS possiamo permetterci di passare più tempo in una “zona sicura”, altrimenti ogni 8 mesi dovremo aggiornare il progetto, cosa che non andrebbe fatta proprio a cuor leggero.

Roadmap Symfony

Ad essere realista, probabilmente in questo momento ha più senso iniziare con Symfony 3.3, ma il concetto che voglio far passare è che un conto è migrare ad una minor release, un altro è migrare da una major release all’altra. Per questo ha senso cominciare subito con Symfony 3 invece che con Symfony 2, mentre forse è ancora presto per passare a Symfony 4, di cui l’LTS è ancora lontana. Valutate bene a seconda della situazione nel vostro momento.

Voglio rassicurarvi su un aspetto. Le versioni di Symfony cambiano molto spesso, del resto come accade per ogni progetto importante di questo tipo. La bella notizia è che non c’è uno stravolgimento totale nemmeno tra le major release. Infatti, chi avesse già iniziato un progetto in Symfony 2 può migrare alla 3 piuttosto facilmente. Non è il lavoro più semplice del mondo per un novizio, ma ci sono fiotti di tutorial sul web. Lo stesso dicasi per migrare dalla 3 alla 4.

Insomma, non vi resta che scaricare il progetto e affacciarvi a questo nuovo mondo.

Nel prossimo articolo vedremo come installare Symfony e creare un nuovo progetto.


Se ti è piaciuto l'articolo seguimi sulla pagina Facebook


Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *