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.
Un po' di storia: la nascita di Laravel
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.
Caratteristiche principali di 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
un 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.
Installare e configurare Laravel
In questo primo capitolo vedremo come installare correttamente Laravel su ambiente Linux con l’obiettivo finale di visualizzare a video la schermata di benvenuto. Installeremo l’ultima versione stabile che, nel momento in cui si scrive, è la 9.41.0
Innanzitutto, dobbiamo verificare la presenza delle dipendenze necessarie per far girare il software:
PHP >= 8.0.2
Le librerie ctype, json, mbstring, tokenizer, xml e curl
Composer
Un...
Il pattern MVC in Laravel
Nell'ingegneria del software, il pattern Model-View-Controller (MVC) è un modo per dividere il codice in tre sezioni distinte. Il modello contiene i dati e la logica dell'applicazione, la vista gestisce l'interfaccia utente e il controllore fa da mediatore tra gli altri due componenti.
Questa separazione delle responsabilità rende il codice più modulare e più facile da mantenere. Inoltre, consente ai...
Artisan: La CLI Laravel
Artisan è un'interfaccia a riga di comando inclusa in Laravel che fornisce una serie di comandi per aiutare l'utente nel flusso di sviluppo.
È possibile utilizzare Artisan eseguendo il comando php artisan dal terminale. Verrà visualizzato un elenco di tutti i comandi disponibili. È quindi possibile eseguire un comando specifico digitando "php artisan ".
I comandi più utilizzati di Artisan sono...
I Service Provider di Laravel
I Service Provider sono il perno del boot in tutte le applicazioni Laravel, di conseguenza rappresentano l’entry point per estendere il framework con funzionalità personalizzate.
Tutti i Service Provider sono registrati nel file config/app.php all'interno dell'array providers.
Quando un fornitore di servizi viene registrato, Laravel richiama automaticamente il metodo register() della classe. Inoltre, i Service Provider possono sfruttare il metodo boot()...
Laravel Facades, cosa sono e come funzionano
Nel capitolo precedente della nostra Guida al framework Laravel, parlando dei Service Provider, abbiamo introdotto l’argomento delle Facades. Nella programmazione orientata agli oggetti, il Facade Pattern consiste nella creazione di un oggetto che serve da interfaccia frontale ad un codice più complesso.
Questa definizione può anche soddisfare chi si ferma ai concetti base, ma per noi che vogliamo approfondire non...
I Service Container di Laravel
I Service Container sono un componente fondamentale del framework Laravel. Il loro scopo è fornire un sistema pratico per iniettare le dipendenze nelle funzionalità.
Nell'ingegneria del software, la dependency injection è una tecnica in cui un metodo o una funzione riceve le sue dipendenze (cioè gli oggetti di cui ha bisogno per funzionare) come parametri. Questa tecnica ci permette di...