
Nel giugno del 2011 Taylor Otwell ha rilasciato Laravel, un framework PHP open-source per applicazioni web che da allora è diventato il framework PHP più utilizzato. Per capire il successo di Laravel, è importante prima di tutto osservare com'era il panorama delle applicazioni web prima del suo arrivo. Nell'era di PHP5, c'erano essenzialmente solo tre framework in uso: Zend Framework, CakePhp e CodeIgniter. Questo era lo scenario quando, nel 2005, SensioLabs introdusse Symfony, il primo framework PHP moderno. Grazie a Symfony, PHP è stato introdotto al concetto di MVC (Model View Controller), ORM (Object-Relational Mapping) e strutture dati tipiche di Ruby on Rails.
La prima versione stabile di Symfony, la 0.1.0, è stata resa disponibile il 10 ottobre 2005, mentre la versione 1.0 è stata rilasciata il 30 luglio 2009. Nonostante ciò, gli sviluppatori PHP continuarono a utilizzare principalmente CodeIgniter, che all'epoca era considerato la scelta principale per le sue funzioni semplici ma potenti.
Ed ecco che finalmente arriva Taylor Otwell, il creatore di Laravel. Otwell era intenzionato a creare un framework che sopperisse alle lacune di CodeIgniter, come ad esempio l’autenticazione e l’autorizzazione. Ha cominciato a lavorare su Laravel come progetto secondario nel 2011, e da allora è cresciuto così tanto da diventare un'azienda a tutti gli effetti, con decine di dipendenti.
Otwell è responsabile di tutti gli aspetti dello sviluppo di Laravel, dal design e l'architettura al marketing e alla gestione della community. È anche un relatore alle conferenze PHP e ha scritto diversi libri su Laravel e sullo sviluppo web.
Non è un mistero che Laravel abbia preso ispirazione da Symfony, visto che ne condivide circa il 30% del suo codice. Ma questo è del tutto naturale, visto che Symfony è un framework modulare. Di conseguenza, molti progetti/sviluppatori hanno riadattato le sinfonie in pacchetti per Laravel.
Dopo aver ripercorso le tappe storiche di Laravel, andiamo a vedere quali sono le sue principali caratteristiche che hanno conquistato il settore dello sviluppo PHP:
- Artisan, una potentissima CLI per gestire l’applicazione da riga di comando
- Tinker, un potente REPL per interagire con le classi di Laravel da terminale
- Migrations, per versionare lo schema del database
- Seeders, per popolare il database
- Requests, per validare i dati immessi dagli utenti nei moduli
- Eloquent, per mappare i dati nel database
- Composer, per gestire dipendenze e packages
- Asset Bundling per gestire gli assets attraverso npm
Facciamo subito una precisazione, per anticipare critiche che non vedono nulla di innovativo in questi strumenti. È vero, la ruota è già stata inventata: le migrations sono tipiche dei software Ruby on Rails, Tinker si usa in molti linguaggi (basti pensare a Python) Artisan “scimmiotta” il rails di Ruby on Rails, e così via.
Il punto di forza di Laravel non è l’innovazione, ma la possibilità di estendere il framework facilmente, proprio grazie a tutti questi strumenti appena elencati. Basti pensare ai service provider che permettono di agganciare packages appositi per Laravel. Anche adesso, nel 2022, se dovessi scegliere un framework completo in php, non avrei dubbi a scegliere Laravel.