Guida Laravel in Italiano
Una guida che ti aiuterà a muovere i primi passi nello sviluppo di applicazioni web sfruttando il framework per eccellenza del linguaggio PHP: Laravel
.png)

Cosa imparerai
Scoprirai cosa è Laravel e come sviluppare applicazioni web robuste e funzionali, sfruttando tutti i vantaggi offerti da PHP e le utilità messe a disposizione dal framework Laravel per gestire con semplicità ogni necessità tipica dello sviluppo del backend (ma anche del frontend) di una moderna web application
1
Introduzione ad HTTP, Composer e Laravel

1Che cos'è HTTP
HTTP (Hypertext Transfer Protocol) è una delle tecnologie alla base del Web; in particolare, HTTP è un protocollo a livello di applicazione nato per la trasmissione di documenti, come ad esempio i file HTML. Il protocollo HTTP è stato inizialmente pensato per la comunicazione tra web browser e web server, ma può essere usato anche per altri scopi. HTTP segue uno sche...
Continua a leggere
2Cosa sono le richieste HTTP
Cosa sono le richieste HTTP Le richieste HTTP sono messaggi inviati dal client al server per iniziare una determinata azione. Hanno una determinata struttura e sono caratterizzati da un metodo (o verbo) che permette di distinguere il tipo di azione richiesta. Struttura richieste HTTP Una richiesta HTTP è composta da: un metodo che indica l’azione richiesta una risorsa...
Continua a leggere
3Cosa sono le risposte HTTP
Cosa sono le risposte HTTP Le risposte HTTP sono messaggi inviati dal server in risposta a una richiesta inviata dal client. Hanno una struttura specifica e sono caratterizzate dal codice di risposta (o status code) che permette di capire se la richiesta è andata a buon fine oppure no. Struttura risposta HTTP Una risposta HTTP è caratterizzata da: lo status code della ...
Continua a leggere
4Gestore di dipendenze Composer
Che cos’è Composer Composer è un gestore di dipendenze per il linguaggio PHP, ovvero un tool che permette di dichiarare da quali librerie dipende il proprio progetto e offre comandi per installare e aggiornare tali dipendenze. Nel mondo dello sviluppo software, infatti, è normale utilizzare delle librerie esterne (o di terze parti) che implementano le varie funzion...
Continua a leggere
5Laravel, il framework per artigiani del web
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 ...
Continua a leggere
6L’ecosistema Laravel
Quando definiamo Laravel un framework intendiamo dire che Laravel offre agli sviluppatori php una struttura di supporto e delle funzionalità generiche che possono essere utilizzate per realizzare l’effettivo contenuto della singola applicazione. Si tratta, quindi, di codice scritto da terzi che permette di risolvere un problema comune, in modo simile a una libreria software. La dif...
Continua a leggere
7Struttura di un progetto Laravel
Quando si crea un nuovo progetto con Laravel viene creata una directory al cui interno sono già disponibili tutti i file necessari per sfruttare fin da subito le potenzialità offerte da Laravel. Si tratta di un punto di partenza valido per applicativi di ogni dimensione ed esigenza, in cui ogni directory assolve a uno specifico compito legato al ciclo di vita dello sviluppo e dell&rs...
Continua a leggere
2
Routing, Controller e View in Laravel

8Laravel e il ciclo di vita delle richieste
Il routing è uno degli aspetti essenziali di una applicazione web ed è, ovviamente, alla base di un progetto Laravel. Con routing si intende il meccanismo per il quale le richieste HTTP vengono instradate (route) alla porzione di codice che le gestirà ed è alla base del ciclo di vita di una richiesta HTTP gestita da un applicativo Laravel. In Laravel il routing viene...
Continua a leggere
9Route in Laravel
In Laravel una Route permette di configurare la nostra applicazione per rispondere quando viene effettuata una richiesta a una determinata URI. In questo modo, la nostra applicazione può rispondere a richieste di risorse che non devono essere necessariamente file specifici presente sul server. Ciò consente una grande flessibilità sotto molti punti di vista, non solo dal punto ...
Continua a leggere
10Route parametriche in Laravel
In questa lezione vedremo come Laravel permette di gestire con una singola rotta URI in cui sono presenti elementi variabili. Ciò consente di semplificare le proprie rotte ed, ovviamente, poter creare una struttura di URL coerente anche per quelle situazioni in cui la pagina dipende dalla effettiva presenza di un contenuto su un database. Come esempio, basti pensare alla pagina per acced...
Continua a leggere-thumb.jpg)
11Controller in Laravel
Laravel è pensato per rendere semplice e immediata la separazione dei compiti (separation of concerns) tra diverse classi. Per questo motivo è possibile separare la definizione di una rotta (intesa come definizione della URI e del metodo HTTP) dalla gestione del comportamento per generare la risposta. Le classi che si occupano della gestione sono definite controller. Tali classi p...
Continua a leggere-thumb.jpg)
12View in Laravel
Le view in Laravel sono particolari componenti del framework nei quali è possibile definire e salvare la struttura delle pagine HTML e dei file che verranno effettivamente restituiti dalla risposta HTTP. Ciò consente di separare ulteriormente la logica applicativa (route & controller) dalla logica di presentazione (view). Le view rendono semplice e immediato costruire pagine H...
Continua a leggere
3
Template HTML in Laravel con Blade

13Template Blade in Laravel
Blade è il php template engine fornito di default dal framework Laravel. È pensato per rendere semplice la scrittura di template, mantenendo, allo stesso tempo, la possibilità di definire template non banali che possono utilizzare al loro interno codice PHP. Lo scopo di un template engine è quello di creare uno specifico contenuto da presentare partendo da un modello...
Continua a leggere
14Blade Component in Laravel
I template Blade presentati nella precedente lezione ci hanno permesso non solo di renderizzare un contenuto dinamico, ma anche di creare delle view componibili. Le direttive @yeld e @section ci hanno permesso di separare file di view condivisi e dedicati alla definizione del layout comune da file di view specifici dedicati al contenuto più customizzato. La modalità con cui view d...
Continua a leggere
4
Database in Laravel con Eloquent ORM

15Laravel e i database relazionali
Uno dei motivi per cui usare Laravel per la propria applicazione web è anche la versatilità e la semplicità con cui è possibile interagire con uno dei database supportati. Difficile, infatti, immaginare una applicazione web moderna che non debba interagire con una base dati. Laravel offre agli sviluppatori php diversi approcci, a seconda della necessità, che p...
Continua a leggere
16Migrazioni del database in Laravel
Nell’ambito dei database una migrazione è un processo che permette di creare o modificare lo schema di una tabella in modo che sia possibile adattare la struttura dei dati salvati nella tabella di pari passo con le modifiche al codice che usa quelle tabelle. Potendo “versionare” la struttura delle tabelle collegandolo alla specifica versione del codice, le migrazioni facil...
Continua a leggere
17Eloquent e Models
Con il termine ORM (Object Relational Mapper) si intende una tecnica di programmazione informatica che permette, nella pratica, di mettere in relazione un database relazionale e un oggetto/classe nel proprio codice. In Laravel viene fornito l’ORM Eloquent e si basa sulla corrispondenza tra una tabella del database e una classe di tipo “Model”. Nello specifico, implementazione ...
Continua a leggere
18Eloquent e l’integrazione con applicazioni Laravel
L’integrazione dell’ORM Eloquent in una applicazione Laravel non si limita alla possibilità di scrivere query verso il database sfruttando la semplicità di una classe che rappresenta la tabella. Sappiamo che in una applicazione Laravel è possibile usare la dependency injection per includere e accedere semplicemente ad altre parti dell’applicazione. Grazie ...
Continua a leggere
19Eloquent e le relazioni tra tabelle in Laravel
Nella introduzione ai database relazionali abbiamo visto che è possibile (e consigliato) creare relazioni tra varie tabelle nel momento in cui esiste una relazione tra le entità che sono rappresentate nelle tabelle. Una tabella movies potrà collegarsi sia alla tabella actors che alla tabella directors. Esistono diversi tipi di relazioni possibili in un database, ognuna indi...
Continua a leggere
20Eloquent e Mass Assignment in Laravel
I vantaggi di usare i Model di Eloquent in una applicazione Laravel sono molteplici. Rispettando alcune buone regole sulla nomenclatura di tabelle e colonne del database, è possibile accedere direttamente dal proprio codice a tali dati senza dover scrivere codice necessario a convertire elementi del database in classi e relative property. Nelle lezioni precedenti abbiamo, principalmente,...
Continua a leggere
5
Approfondimenti su Laravel
-thumb.jpg)
21Form e validazione delle request in Laravel
In questa lezione andremo ad approfondire come inviare dati alla nostra applicazione e come assicurarci che tali dati inviati siano corretti. Nelle applicazioni web, l’invio dei dati è abitualmente realizzato tramite form HTML: i dati inseriti dall’utente nel browser vengono inviati al server e memorizzati sul database. Laravel rende estremamente semplice collegare i campi di...
Continua a leggere
22Autenticazione in Laravel
In un applicativo web è importante poter distinguere quali richieste sono effettuate da utenti registrati e quali, invece, provengono da visitatori che non hanno fatto l’accesso. A seconda dei casi, infatti, potremmo voler concedere solo ad alcuni l’accesso a determinate risorse (per esempio solo gli utenti registrati come “editor” possono aggiungere nuovi post a un ...
Continua a leggere-thumb.jpg)
23Model, Resource Controller e CRUD in Laravel
In alcuni contesti, come per esempio quello delle API RESTful, potrebbe essere utile unire insieme la “risorsa” presente sul database (intesa come riga di dati salvati) con la “risorsa” intesa come documento sul web accessibile tramite URI (che, per l’appunto, è l’acronimo di Uniform Resource Identifier). In questo modo è possibile creare un leg...
Continua a leggere-thumb.jpg)
24Invio email in Laravel
L’invio di email in una applicazione Laravel è realizzato in modo semplice e flessibile e sfrutta tre concetti base: i mailer, i mailable, e la facade Mail. Ognuno dei tre si occupa di un diverso aspetto del ciclo di vita dell’invio di un messaggio di posta elettronica. I mailer sono le configurazioni dei servizi di invio email (locali o remoti) che può usare l’a...
Continua a leggere-thumb.jpg)
25Aprire e salvare file in Laravel
Laravel permette di accedere a file esistenti e salvare file attraverso un’ astrazione del file system che permette di interfacciarsi con file locali o remoti con le stesse modalità. Ciò consente non solo di leggere e scrivere dal file system locale, FTP o AWS S3 nello stesso modo, ma anche nel caso di scegliere un'opzione diversa a seconda che si stia sviluppando o si s...
Continua a leggere
6
Laravel e il Frontend
-thumb.jpg)
26Laravel e il Frontend: come integrare il frontend in Laravel
Laravel è un framework nato in ambito backend e il suo punto di forza è fornire tutte le funzionalità necessarie “lato server” a una moderna applicazione web o servizio di API. D’altro canto, uno degli obiettivi di Laravel è anche poter fornire una esperienza di sviluppo full stack di qualità. Per questo motivo, Laravel offre soluzioni integrate...
Continua a leggere-thumb.jpg)
27Build e bundling degli asset in Laravel
Indipendentemente dalla modalità scelta per implementare il proprio frontend – Blade, Livewire oppure Vue / React con Inertia – sarà sempre necessario caricare JavaScript e CSS nel momento in cui il browser apre una pagina erogata dal proprio progetto Laravel, che si tratti di un sito web “old style” o di una moderna web app. A partire dalla versione 9.x, L...
Continua a leggere-thumb.jpg)
28Livewire
Livewire è uno dei progetti nell’ecosistema di Laravel espressamente dedicata alla gestione del frontend. La particolarità di Livewire è quella di permettere lo sviluppo di una web application “moderna” senza la necessità di utilizzare framework JavaScript dedicati. Con Livewire è possibile sviluppare dei componenti Blade che offrono un livel...
Continua a leggereLe nostre guide possono essere molto utili per muovere i primi passi nel mondo della programmazione, ma se vuoi iniziare una nuova carriera in ambito digital & tech con il supporto costante dei docenti e tantissime esercitazioni pratiche, ti consigliamo di frequentare uno dei corsi della nostra Hackademy!
Scopri i corsi