Naviga nel nostro blog e troverai informazioni utili per i programmatori e per conoscere al meglio la nostra realtà.

Laravel: la guida completa al popolare framework PHP (2023)


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';
});
PHP

In 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;
});
PHP

In 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';
    }
}
PHP

In 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');
PHP

In 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'
    ];
}
PHP

In 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]);
    }
}
PHP

Views

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>
Blade

In 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à.

Categorie

Tags

LaravelPHP