Guida Laravel
Laravel è un framework PHP open-source per applicazioni web, rilasciato da Taylor Otwell nel giugno del 2011. Oggi è sicuramente il framework PHP più utilizzato. Per capire il successo di Laravel dobbiamo fare un passo indietro e capire come stavano le cose prima del suo arrivo. Durante il periodo di PHP5 i frameworks utilizzati erano essenzialmente tre:
- Zend Framework
- CakePhp
- CodeIgniter
Questo è il contesto in cui SensioLabs andò a creare nel 2005 Symfony, il primo framework moderno di PHP. Symfony introdusse nell’ambito PHP concetti come il pattern MVC (Model View Controller), l’ORM (Object-Relational Mapping) e le strutture dati tipiche di Ruby on Rails.
La prima versione stabile di Symfony, la 0.1.0, è stata rilasciata il 10 ottobre 2005, mentre la versione 1.0 è stata rilasciata il 30 luglio 2009. Ciononostante gli sviluppatori PHP continuavano ad usare principalmente CodeIgniter che all’epoca sembrava il top, con le sue semplici ma potenti funzionalità.
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.