Cos’è Laravel?
Laravel è un framework del linguaggio PHP pensato per creare applicazioni web. È costruito basandosi sulle migliori tecnologie e librerie PHP e rende molto semplice l’implementazione di funzioni tipiche di applicativi web, quali autenticazione, routing delle richieste, gestione delle sessioni e del caching.
L’utilizzo di un framework offre diversi vantaggi ad uno sviluppatore web:
- offre implementazioni complete e collaudate dei casi d’uso tipici a cui il framework è rivolto, per esempio, nel caso di Laravel la gestione di richieste e risposte HTTP, in modo che il developer possa dedicarsi a “cosa” deve fare il suo applicativo e non a implementare da zero ogni dettaglio
- fornisce blocchi modulari per permettere di includere e usare di volta in volta solo quello che serve, per esempio chi dovesse sviluppare un servizio di API con Laravel potrebbe evitare di includere i pacchetti che offrono il templating HTML, necessari solo a chi dovesse creare un server web per erogare una pagina HTML
- integra in modo coerente i vari blocchi usando un design comune, in modo che tutti i vari componenti possano, ad esempio, sfruttare lo stesso sistema di configurazione ed evitando di trovarsi nella situazione di dover “cucire” e tenere insieme librerie con stili di programmazione molto diversi
Laravel fornisce una struttura versatile per creare applicazioni web di ogni tipo e lo fa cercando di offrire agli sviluppatori php la migliore esperienza possibile in aree critiche quali la dependency injection, l’astrazione del database, la gestione di code e job schedulati, l’esecuzione di test.
Il team di sviluppo di Laravel definisce il framework nei seguenti modi:
- progressivo: è facilmente usabile da sviluppatori php alle prime armi e, al tempo stesso, completo e flessibile per sviluppatori senior
- scalabile: le applicazioni Laravel possono scalare orizzontalmente (cioè aggiungendo altre istanze dell’applicazione se serve e non comprando singoli server più potenti) per gestire centinaia di milioni di richieste al mese
- comunitario: combina i migliori pacchetti dell’ecosistema PHP per offrire un framework robusto e “developer-friendly”
Come creare il primo progetto Laravel
Per poter creare un progetto Laravel è necessario installare sulla propria macchina PHP e Composer. In aggiunta, è raccomandato installare anche NodeJS e NPM.
È possibile creare un nuovo progetto Laravel tramite il comando create-project di Composer, indicando come template il pacchetto laravel/laravel:
$ composer create-project laravel/laravel example-app Creating a "laravel/laravel" project at "./example-app" Installing laravel/laravel (v9.5.0) - Downloading laravel/laravel (v9.5.0) - Installing laravel/laravel (v9.5.0): Extracting archive ...
Alla fine dell’installazione, avremo a disposizione una applicazione web di riferimento. Potremmo avviarla sul nostro computer in modalità di sviluppo con:
$ cd example-app $ php artisan serve INFO Server running on [http://127.0.0.1:8000]. Press Ctrl+C to stop the server
Per poi vedere le pagine erogate dall’applicazione avviando un browser e aprendo la pagina http://localhost:8000
NOTA: in questa guida avremo come riferimento quanto offerto da Laravel nella versione 9.x
Artisan
Per avviare la nostra applicazione in modalità di sviluppo, abbiamo usato php artisan serve. Artisan è l’interfaccia a riga di comando inclusa con Laravel per impartire determinati comandi nel progetto. Molti di questi comandi sono utili nelle varie fasi del ciclo di sviluppo di una applicativo Laravel, altri possono essere usati anche in fase di setup o aggiornamento dell’applicazione.
A titolo d’esempio, il comando migrate serve a eseguire la migrazione del database ed è, quindi, utile per in fase di deploy dell’applicativo, mentre il comando cache:clear serve per pulire le cache dell’applicativo Laravel e può essere usato sul server in cui l’applicazione è in esecuzione.
Particolarmente utile è il comando make che ci permette di aggiungere al progetto nuove classi di determinate tipologie.
Ci sono molti comandi per diverse necessità e l’elenco esatto dipende anche da quali pacchetti e librerie sono state incluse nel proprio progetto. Per vedere la lista completa dei comandi disponibili nel proprio progetto è possibile utilizzare il comando list:
php artisan list
Ogni comando include abitualmente anche un “help” che descrive la finalità del comando stesso e le opzioni e argomenti disponibili. Per mostrare tale aiuto, è sufficiente far precedere il comando interessato con help. Ad esempio, per avere maggiori informazioni sul comando Artisan che esegue le migrazioni del database è possibile:
php artisan help migrate
È anche possibile scrivere dei propri comandi, che verranno inclusi nell’elenco di quelli disponibili nel progetto, per eseguire particolari task