Guida Laravel

Guida Laravel
LT
Luca Terribili
Autore
📚 15 capitoli

Laravel è un framework PHP open-source progettato per lo sviluppo di applicazioni web. Creato da Taylor Otwell e rilasciato nel giugno del 2011, è oggi uno dei framework PHP più utilizzati al mondo. Per comprendere il successo di Laravel, è utile fare un passo indietro e vedere come si evolverano i framework nel mondo dello sviluppo software, anche al di fuori dell'ecosistema PHP.

Un esempio interessante è Spring Boot, un framework Java che ha guadagnato un'enorme popolarità grazie alla sua capacità di semplificare lo sviluppo di applicazioni Java moderne. Come Laravel per PHP, Spring Boot ha introdotto concetti innovativi che hanno semplificato la configurazione e il deployment delle applicazioni, riducendo il tempo necessario per iniziare a sviluppare e permettendo agli sviluppatori di concentrarsi maggiormente sulle funzionalità. Entrambi questi framework, pur appartenendo a mondi tecnologici differenti, condividono un obiettivo simile: semplificare e velocizzare il processo di sviluppo, migliorando la produttività degli sviluppatori.

Nel contesto PHP, durante l'era di PHP5, i framework più diffusi erano principalmente tre:

  • Zend Framework
  • CakePHP
  • CodeIgniter

Questi erano gli strumenti più usati per lo sviluppo di applicazioni PHP, ma il panorama stava rapidamente cambiando. In questo contesto, nel 2005 SensioLabs lanciò Symfony, un framework che segnò una vera e propria rivoluzione. Symfony fu il primo framework moderno di PHP e introdusse nel linguaggio concetti fondamentali, 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, fu rilasciata il 10 ottobre 2005, seguita dalla versione 1.0 il 30 luglio 2009. Tuttavia, nonostante l'innovazione portata da Symfony, molti sviluppatori continuavano a preferire CodeIgniter. Quest'ultimo, infatti, era noto per la sua semplicità e la potenza delle sue funzionalità, caratteristiche che lo rendevano molto popolare tra i programmatori PHP.

È proprio in questo momento che entra in scena Taylor Otwell, il creatore di Laravel. Otwell aveva in mente di sviluppare un framework che colmasse le lacune di CodeIgniter, aggiungendo funzionalità fondamentali come l'autenticazione e l'autorizzazione, che erano assenti nel framework di CodeIgniter. Laravel iniziò come un progetto secondario nel 2011, ma nel giro di pochi anni crebbe così tanto da diventare un vero e proprio ecosistema, con una compagnia e una community attiva a supportarlo.

Oggi Taylor Otwell è il responsabile dello sviluppo di Laravel, gestendo aspetti come il design, l'architettura, il marketing e la community. È anche un relatore nelle principali conferenze PHP e ha scritto libri su Laravel e sullo sviluppo web in generale. Non è un segreto che Laravel prenda molta ispirazione da Symfony: infatti, si stima che circa il 30% del codice di Laravel provenga da Symfony. Tuttavia, questo è un aspetto naturale, dato che Symfony è un framework altamente modulare e che molte delle sue componenti sono state adattate in pacchetti per Laravel.

Le principali caratteristiche di Laravel

Oltre a prendere ispirazione da Symfony, Laravel ha introdotto numerose caratteristiche che hanno reso il framework estremamente popolare tra gli sviluppatori PHP. Alcuni degli strumenti che Laravel mette a disposizione sono:

  • Artisan: una potente CLI (Command Line Interface) che permette di gestire l'applicazione direttamente da terminale.
  • Tinker: un ambiente interattivo REPL (Read-Eval-Print Loop) che consente di interagire con le classi di Laravel dal terminale.
  • Migrations: uno strumento che permette di versionare lo schema del database, semplificando la gestione delle modifiche.
  • Seeders: utilizzati per popolare il database con dati di esempio.
  • Requests: per validare i dati immessi dagli utenti nei moduli, garantendo la sicurezza e l'integrità dei dati.
  • Eloquent ORM: uno degli ORM più popolari per mappare i dati nel database in modo semplice e intuitivo.
  • Composer: il gestore delle dipendenze di PHP che Laravel utilizza per gestire pacchetti e librerie di terze parti.
  • Asset Bundling: Laravel gestisce gli asset (CSS, JS, immagini) tramite strumenti come npm, facilitando l'organizzazione e la gestione dei file statici.

Un punto importante da sottolineare è che Laravel non ha inventato questi strumenti, ma li ha resi accessibili e facili da integrare in un'unica soluzione. È vero che molti degli strumenti che Laravel offre (come le Migrations, il REPL di Tinker o l'Artisan CLI) sono già presenti in altri ambienti, come Ruby on Rails o Python, ma Laravel ha avuto il merito di combinare questi strumenti in modo coerente ed efficiente, creando un framework che permette agli sviluppatori di estendere facilmente le proprie applicazioni.

Il punto di forza di Laravel

La vera forza di Laravel non risiede nell'innovazione degli strumenti, ma nella sua capacità di estendere e personalizzare il framework in maniera semplice e diretta. La possibilità di integrare pacchetti e servizi esterni è uno degli aspetti che ha reso Laravel così popolare. Grazie ai Service Provider, gli sviluppatori possono facilmente integrare librerie o funzionalità aggiuntive, senza compromettere la struttura principale dell'applicazione.

Nel corso degli anni, Laravel ha continuato a evolversi, aggiungendo nuove funzionalità e migliorando quelle esistenti. Laravel rimane uno dei framework PHP più completi e versatili, e se dovessi scegliere un framework per lo sviluppo di applicazioni PHP moderne, non avrei dubbi: Laravel è la scelta migliore.

📚 Capitoli del Tutorial

1

Presentazione del Framework Laravel

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.

2

Il pattern MVC in Laravel

Il modello Model-View-Controller (MVC) nell'ingegneria del software è un modo per dividere il codice in tre sezioni distinte. Il modello ospita i dati e la logica aziendale, la vista gestisce l'interfaccia utente e il controllore funge da mediatore tra i due.

3

Come installare e configurare Laravel

Laravel rappresenta oggi uno dei framework PHP più apprezzati e utilizzati dalla community degli sviluppatori web. La sua elegante sintassi, la robusta architettura MVC e l'ecosistema ricco di strumenti lo rendono la scelta ideale per progetti di qualsiasi dimensione.

4

Artisan: La CLI di 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.

5

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()...

6

Gestione delle Facades in Laravel

Nel capitolo precedente, 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 &eg...

7

Service Container

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.

8

Usare le Migrations di Laravel per versionare lo schema del database

Le migrazioni di Laravel consentono di versionare lo schema del database dell’applicazione e di legarlo in modo indissolubile al resto del software. Detto in maniera più semplice, le migrations sono delle classi di Laravel che, attraverso la Facade Schema, ci permettono di creare e modificare lo schema del database, in qualsiasi ambiente andremo ad installare l’applicazione.In q...

9

I Seeders, un utile strumento per popolare il database

I seeders sono classi che vengono utilizzate per popolare il database con dei dati. È un argomento essenziale quando si fa un refactoring o si ha bisogno di qualche dato per fare degli Unit Tests.In questa lezione vedremo come creare dei dati fittizi, utilizzando la classe Faker di Laravel ma il seeder può essere utilizzato anche per importare i dati da un database già esisten...

10

Introduzione ai Modelli di Eloquent

Eloquent è l'ORM (object-relational mapper) integrato di Laravel. Offre un modo semplice per lavorare con il database, senza dover scrivere query SQL, fornendo all’utente un'implementazione ActiveRecord per lavorare con i suoi dati, il che significa che ogni tabella del database ha un "modello" corrispondente.I modelli sono archiviati nella directory app/Models e di...

11

Creare, aggiornare e cancellare records nel database attraverso i Modelli di Eloquent

In questa lezione vedremo come usare i Modelli di Eloquent per le operazioni di creazione e aggiornamento nel database.Creazione nuovo recordPer la creazione di un nuovo record abbiamo due opzioni:Istanziare il modello e poi salvare il dato nel databaseSalvare il dato direttamente nel databaseEntrambe le soluzioni sono valide, sarà compito nostro, in un contesto operativo, valutare l’...

12

Usare le factory dei Modelli

Adesso che siamo in grado di utilizzare i metodi base dei modelli di Eloquent, facciamo un piccolo esercizio: generiamo la factory del modello Car e creiamo un seeder per popolare la relativa tabella.

13

Il casting degli attributi nei Modelli

In PHP, non è necessario specificare il tipo di dato di una variabile quando la si dichiara. Il parser PHP lo imposta automaticamente per noi. Tuttavia, il tipo di dato può essere convertito in un altro.

14

Le relazioni di Eloquent tra i vari modelli

Come abbiamo visto nelle lezioni precedenti, uno dei componenti chiave di Laravel è Eloquent, che consente agli sviluppatori di creare modelli che rappresentano diversi tipi di dati all'interno dell'applicazione.

15

I Middleware in Laravel

I middleware forniscono un comodo meccanismo per gestire le richieste HTTP che arrivano alla nostra applicazione. Ad esempio, Laravel include un middleware che verifica se l'utente è autenticato e in caso negativo, lo reindirizza alla schermata di login.Lo stack middleware è costruito intorno al componente Illuminate\Contracts\Http\Kernel di Laravel che fornisce un potente sistem...