Introduzione
La struttura predefinita di un’applicazione Laravel offre un buon punto di partenza sia per applicazioni di grandi dimensioni sia per applicazioni più piccole. Sei però libero di organizzare l’applicazione come preferisci. Laravel impone pochissime restrizioni sulla posizione delle classi: basta che Composer riesca ad autoloadarle.Directory radice
Quando crei un nuovo progetto Laravel viene generata la seguente struttura di directory:Directory app/
Contiene il codice principale dell’applicazione.
Quasi tutte le classi dell’applicazione — controller, modelli, middleware e altre — sono collocate qui.
Di default include le sottodirectory Http, Models e Providers.
Generando classi con i comandi Artisan verranno create automaticamente anche altre sottodirectory.
Directory bootstrap/
Contiene il file app.php che avvia il framework.
Contiene inoltre la directory cache/, dove risiedono i file di ottimizzazione delle prestazioni come la cache delle route e dei servizi.
Directory config/
Contiene tutti i file di configurazione dell’applicazione.
È consigliato leggerli per prendere confidenza con le opzioni disponibili.
Directory database/
Contiene migration, factory dei modelli e seeder del database.
Puoi collocare qui anche i file di database SQLite.
Directory public/
Contiene index.php, il punto d’ingresso di tutte le richieste dell’applicazione.
Qui vengono conservati anche gli asset come immagini, JavaScript e CSS.
Directory resources/
Contiene le viste e gli asset non compilati come CSS e JavaScript grezzi.
Directory routes/
Contiene tutte le definizioni delle route dell’applicazione.
Di default include due file di route: web.php e console.php.
| File | Uso |
|---|---|
web.php | Route per il browser. Viene applicato il gruppo di middleware web, che fornisce sessione, protezione CSRF e cifratura dei cookie. |
console.php | File in cui definisci i comandi Artisan tramite closure. |
api.php | Route API stateless. Viene aggiunto con il comando install:api. |
channels.php | File in cui registri i canali di broadcasting degli eventi. |
Directory storage/
Contiene i file generati dal framework: log, template Blade compilati, sessioni basate su file, cache basata su file e altro.
È suddivisa in tre sottodirectory: app/, framework/ e logs/.
Directory tests/
Contiene i test automatizzati.
Include fin dall’inizio esempi di test unitari e funzionali con Pest o PHPUnit.
Directory vendor/
Contiene le dipendenze di Composer. Questa directory non va inclusa nel controllo di versione.
Dettagli della directory app/
Molte classi della directory app possono essere generate con i comandi Artisan.
Per vedere i comandi disponibili esegui:
Directory Http/
Directory Http/
Contiene controller, middleware e form request.
Qui risiede la quasi totalità della logica di elaborazione delle richieste destinate all’applicazione.
Directory Models/
Directory Models/
Contiene tutte le classi dei modelli Eloquent.
Per ogni tabella del database esiste un “modello” corrispondente, usato per interrogare e inserire dati.
Directory Providers/
Directory Providers/
Contiene tutti i service provider dell’applicazione.
I service provider effettuano il binding dei servizi al container, registrano gli eventi e svolgono altre operazioni per avviare l’applicazione.
Directory Console/
Directory Console/
Contiene tutti i comandi Artisan personalizzati.
Puoi generarli con il comando
make:command.Directory Exceptions/
Directory Exceptions/
Contiene tutte le eccezioni personalizzate dell’applicazione.
Puoi generarle con il comando
make:exception.File importanti
File .env
Gestisce i valori di configurazione che variano per ciascun ambiente (informazioni di connessione al database, chiavi API, ecc.).
Viene consultato dai file di configurazione in config/ tramite l’helper env().
File artisan
È il punto di ingresso dell’interfaccia a riga di comando Artisan.
Si esegue nel formato php artisan <nome-comando>.
Prossimi passi
Routing
Impara a definire le route e a collegare gli URL alla logica applicativa.