====== Una veloce introduzione framework Laravel ====== Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **// 16/09/2026 11:23 //** // // Prima di tuffarci nell'azione teniamo a mente che Laravel è un framework PHP open source per sviluppare applicazioni web in modo rapido e ordinato, seguendo il pattern MVC. Offre strumenti per routing, database, autenticazione, validazione e template, semplificando la creazione di siti e API. E' molto ricco di funzionalità e questo forse innalza un pochino la curva di apprendimento. ===== Principali elementi di Laravel ===== ^ Ruolo ^ Descrizione ^ Esempio in Laravel ^ Percorso file esempio ^ | Model | Gestisce i dati e la logica di business | **User**, **Post**, **Product** | **app/Models/User.php**, **app/Models/Post.php** | | View | Mostra l’interfaccia all’utente | file Blade | **resources/views/** | | Controller | Riceve le richieste e coordina Model e View | **UserController**, **PostController** | **app/Http/Controllers/** | | Route | Associa URL a controller o closure | file routes | **routes/web.php**, **routes/api.php** | | Middleware | Filtra richieste prima che arrivino al controller | **auth**, **throttle** | **app/Http/Middleware/** | | Service | Incapsula logica complessa riutilizzabile | classi di servizio | **app/Services/** | | Request | Valida e prepara i dati in ingresso | **FormRequest** | **app/Http/Requests/** | | Repository | Astrazione per accesso ai dati | pattern architetturale | spesso in **app/Repositories/** | | Helper / Facade | Accesso rapido a servizi del framework | **DB**, **Cache**, **Auth** | usati direttamente nel codice | Di seguito metteremo su un piccolo progetto di esempio. Creo un'agenda che gestisce una tabella sqlite con soli 2 campi "nominativo" e "email". ====== 1) Crea il progetto ====== composer create-project laravel/laravel agenda cd agenda ====== 2) Configura SQLite ====== Crea il file del database: touch database/database.sqlite Poi apri .env e imposta: DB_CONNECTION=sqlite DB_DATABASE=/percorso/assoluto/del/progetto/database/database.sqlite Su Windows puoi usare un percorso tipo: DB_DATABASE=C:\path\to\agenda\database\database.sqlite ====== 3) Crea migration e model ====== php artisan make:model Contatto -m Apri la migration in database/migrations/...create_contattos_table.php e metti: public function up(): void { Schema::create('contattos', function (Blueprint $table) { $table->id(); $table->string('nominativo'); $table->string('email')->unique(); $table->timestamps(); }); } ====== 4) Esegui le migrazioni ====== php artisan migrate ====== 5) Crea controller ====== php artisan make:controller ContattoController --resource ====== 6) Aggiungi il model ====== In app/Models/Contatto.php: class Contatto extends Model { protected $fillable = ['nominativo', 'email']; } ====== 7) Definisci le rotte ====== In routes/web.php: use App\Http\Controllers\ContattoController; Route::get('/', [ContattoController::class, 'index']); Route::resource('contatti', ContattoController::class); ====== 8) Completa il controller ====== In app/Http/Controllers/ContattoController.php: use App\Models\Contatto; use Illuminate\Http\Request; public function index() { $contatti = Contatto::all(); return view('contatti.index', compact('contatti')); } public function create() { return view('contatti.create'); } public function store(Request $request) { $request->validate([ 'nominativo' => 'required|string|max:255', 'email' => 'required|email|unique:contattos,email', ]); Contatto::create($request->only('nominativo', 'email')); return redirect()->route('contatti.index'); } ====== 9) Crea le viste ====== Crea la cartella: mkdir -p resources/views/contatti === resources/views/contatti/index.blade.php === Agenda

Agenda contatti

Nuovo contatto
=== resources/views/contatti/create.blade.php === Nuovo contatto

Nuovo contatto

@csrf
@error('nominativo')

{{ $message }}

@enderror
@error('email')

{{ $message }}

@enderror
====== 10) Avvia il server ====== php artisan serve Vai su: http://127.0.0.1:8000