Laravel: la guida completa al popolare framework PHP (2023)
Indice Contenuti
Introduzione
Laravel è uno dei framework PHP più popolari al mondo, noto per la sua facilità d'uso, la sua flessibilità e la sua scalabilità. In questo articolo, vi spiegheremo cosa è Laravel, come funziona e come utilizzarlo per sviluppare applicazioni web efficienti e scalabili.
Cos'è Laravel?
Laravel è un framework PHP open source, creato da Taylor Otwell nel 2011. Esso si basa sul paradigma architetturale Model-View-Controller (MVC) e fornisce strumenti per la gestione delle richieste HTTP, l'elaborazione dei dati, l'accesso al database, la gestione degli errori, la sicurezza e molto altro.
Routing
Il routing è uno dei concetti fondamentali di Laravel. Esso si occupa di dirigere le richieste HTTP ai relativi controller, che gestiscono la logica dell'applicazione. Laravel fornisce un sistema di routing molto semplice da usare e molto flessibile, che consente di definire le rotte dell'applicazione in modo chiaro e conciso.
<?php
// Import della Classe "Route"
use Illuminate\Support\Facades\Route;
/* ... */
Route::get('/users', function () {
return 'Lista degli utenti';
});
PHPIn questo esempio, la funzione get()
definisce la rotta per l'URL '/users'. Quando l'utente accede a questo URL, Laravel restituirà una risposta con il testo "Lista degli utenti".
Inoltre, si possono definire rotte parametrizzate, ad esempio:
/* ... */
Route::get('/users/{id}', function ($id) {
return "Dettagli dell'utente con ID " . $id;
});
PHPIn questo caso, il parametro {id}
nella definizione della rotta permette di accedere all'ID dell'utente richiesto all'interno della funzione che gestisce la rotta.
La funzione get() è solo una delle tante funzioni che ci vengono messe a disposizione dalla classe Route, ma oltre ad essa possiamo trovarne altre come:" post(), put(), patch(), etc...".
Controller
Il controller è il cuore dell'applicazione in Laravel. Esso contiene la logica dell'applicazione, gestisce le richieste HTTP e interagisce con il modello e la view dell'applicazione. I controller in Laravel sono scritti in PHP e sono molto facili da utilizzare e da testare.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
return 'Lista degli utenti';
}
}
PHPIn questo esempio, si crea un nuovo controller chiamato UserController
all'interno del namespace App\Http\Controllers
. Il controller estende la classe Controller
di Laravel, che fornisce una serie di funzionalità comuni a tutti i controller. Il metodo index()
definisce l'azione da eseguire quando l'utente richiede l'URL associato al controller. In questo caso, il metodo restituisce la stringa "Lista degli utenti".
Dopo aver creato il controller, è possibile associarlo alle rotte utilizzando il metodo route()
o il metodo get()
come segue:
<?php
use Illuminate\Support\Facades\Route;
// Import del Controller
use App\Http\Controllers\UserController;
Route::get('/users', 'UserController@index');
PHPIn questo modo, quando l'utente richiede l'URL '/users', Laravel eseguirà l'azione index()
del controller UserController
.
Model
Il modello (Model) è la rappresentazione dei dati dell'applicazione in Laravel. Esso si occupa di interagire con il database e di gestire la logica dei dati dell'applicazione. Laravel fornisce uno strumento chiamato Eloquent ORM, che semplifica notevolmente la gestione dei dati e la creazione di query.
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
// Nome della tabella con cui Eloquent dovrà interagire
protected $table = 'users';
// Campi compilabili all'interno del DB
protected $fillable = [
'name',
'surname',
'email'
];
}
PHPIn questo esempio, si crea un nuovo model chiamato User
all'interno del namespace App\Models
. Il model estende la classe Model
di Laravel, che fornisce una serie di funzionalità per interagire con il database.
La proprietà protected $table
indica a Laravel quale tabella del database è associata al model. In questo caso, la tabella si chiama users
. Inoltre, se la primary key di una tabella ha un nome diverso dal solito, è possibile specificare anche il nome della chiave primaria utilizzando la proprietà protected $primaryKey
.
Adesso possiamo utilizzare il nostro model User all'interno del nostro controller per recuperare tutti gli utenti!
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
public function index()
{
$users = User::all();
/*
La funzione view indica che stiamo ritornando una view
e il suo primo parametro corrisponderà al path (users/index.blade.php)
che in automatico va a controllare il file dentro "resources/views/" e
basterà scrivere solo il nome del file senza aggiungere .blade.php,
il suo secondo parametro invece è un array di oggetti dove la key che utilizziamo
per la variabile sarà poi quella che andremmo a chiamare nella view.
*/
return view('users.index', ['users' => $users]);
}
}
PHPViews
La view è la rappresentazione grafica dell'applicazione in Laravel. Essa si occupa di mostrare i dati dell'applicazione all'utente in modo visuale. Laravel supporta molti template engine come Blade, che consente di creare facilmente viste dinamiche e personalizzate.
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Lista degli utenti</title>
</head>
<body>
<h1>Lista utenti</h1>
<ul>
@foreach ($users as $user)
<li>{{ $user->name }}</li>
@endforeach
</ul>
</body>
</html>
BladeIn questo esempio, si crea una vista chiamata index.blade.php
all'interno della cartella resources/views/users
.
La lista di utenti viene generata utilizzando una struttura di controllo foreach
che cicla su una variabile $users
passata alla vista dal controller. All'interno del ciclo, viene utilizzata la sintassi delle parentesi graffe doppie per visualizzare il nome di ogni utente nella lista.
La view utilizza la sintassi di Blade, il motore di template di Laravel, che permette di scrivere codice PHP all'interno di codice HTML in modo più leggibile e compatto. Ad esempio, la sintassi delle parentesi graffe doppie {{ $user->name }}
viene utilizzata per visualizzare il valore di una variabile PHP all'interno del markup HTML.
Middleware
Il middleware in Laravel è uno strumento molto utile per la gestione delle richieste HTTP. Esso si occupa di filtrare le richieste HTTP in modo da prevenire l'accesso non autorizzato, la gestione degli errori, la gestione delle sessioni e molto altro. Laravel fornisce molti middleware predefiniti, ma è anche possibile creare middleware personalizzati per le proprie esigenze.
Conclusioni
In conclusione, Laravel è un framework PHP molto potente e flessibile, che consente di sviluppare applicazioni web efficienti e scalabili. Con il routing, il controller, il modello, la vista e il middleware, Laravel fornisce tutti gli strumenti necessari per la creazione di applicazioni web moderne e sicure. Speriamo che questa guida vi abbia dato una buona introduzione a Laravel e vi abbia fatto scoprire le sue molte potenzialità.