Dopo aver creato il nostro progetto, mediante il comando:
composer create-project --prefer-dist laravel/laravel nome-progetto
spostandoci all’interno della cartella nome-progetto (cd nome-progetto), troveremo una struttura simile alla seguente:
La struttura che troviamo all’interno della cartella della nostra applicazione non è rigida e può essere personalizzata dall’utente.
Passiamo alla descrizione delle principali directory predefinite:
ROOT Directory (app)
La directory app contiene il nucleo del codice dell’applicazione, quasi tutte le classi della nostra applicazione si trovano al suo interno.
Bootstrap Directory
Questa directory contiene lo script app.php che inizializza il framework Laravel, all’interno di bootstrap trovate anche la directory cache che contiene i files generati da Laravel per migliorare le prestazioni.
Config directory
La directory config contiene i files di configurazione dell’applicazione.
Database Directory
In questa directory si trovano i files cosiddetti di migrazione (migrations files), che servono a creare la struttura iniziale del database e via via le modifiche necessarie al suo aggiornamento, una sorta di controllo di versione del database.
Sono presenti anche i files di seeds che popolano le tabelle del database, aggiungendo righe di dati. Inoltre, se si usa SQLite è qui che bisogna creare il file di database.
Public Directory
All’interno della cartella public troviamo il file index.php che rappresenta l’entry point della nostra applicazione e gestisce tutte le request. In questa directory sono collocati anche gli assets dell’applicazione (immagini, file css e script javascript)
Resources Directory
Questa è la cartella che ospiterà le views (viste), gli assets da compilare (file LESS, SASS, javascript) e i file della lingua.
Routes Directory
In questa directory troviamo due file importantissimi web.php e api.php.
nel file web.php troviamo tutti i percorsi della nostra applicazione, in pratica gli url che digiteremo sulla barra degli indirizzi del browser e ai quali sarà associata una sessione.
Il file api.php conterrà, invece, i percorsi cosiddetti stateless che non gestiscono la sessione e per i quali se è necessaria l’autenticazione la si deve gestire mediante token. Spesso questo file viene utilizzato dalla nostra applicazione per gestire web services RESTful.
Altri due file presenti in questa cartella sono console.php e channels.php.
Storage Directory
In questa cartella troveremo i file che l’utente o l’applicazione genereranno a runtime:
file di cache, file compilati, file di log e gli upload dell’utente.
In particolare, all’interno di storage/app/public troveremo i file caricati dall’utente (immagini del profilo e altro), mediante un comando da console (php artisan storage:link) sarà possibile creare un link simbolico public/storage all’interno della cartella public (vedremo meglio nei prossimi articoli).
TEST Directory
In questa cartella verranno ospitati i file contenenti i test automatizzati dell’applicazione.
Vendor Directory
Qui troveremo tutte le dipendenze Composer.
All’interno della cartella principale app, risiedono altre cartelle particolarmente importanti:
console, broadcasting, events, exceptions,http, listeners, mail, notifications, providers ecc..
Alcune di queste non sono presenti da subito, ma vengono create all’occorrenza mediante comandi php artisan.
Nei prossimi articoli approfondiremo e chiariremo il significato di queste cartelle