Laravel - Struttura dell'applicazione
La struttura dell'applicazione in Laravel è fondamentalmente la struttura di cartelle, sottocartelle e file inclusi in un progetto. Una volta creato un progetto in Laravel, otteniamo una panoramica della struttura dell'applicazione come mostrato nell'immagine qui.
L'istantanea mostrata qui si riferisce alla cartella principale di Laravel, ovvero laravel-project. Include varie sottocartelle e file. Di seguito viene fornita l'analisi di cartelle e file, insieme ai loro aspetti funzionali:
App
È la cartella dell'applicazione e include l'intero codice sorgente del progetto. Contiene eventi, eccezioni e dichiarazioni di middleware. La cartella dell'app comprende varie sottocartelle come spiegato di seguito:
Console
La console include i comandi artigianali necessari per Laravel. Include una directory denominataCommands, dove tutti i comandi sono dichiarati con la firma appropriata. Il fileKernal.php chiama i comandi dichiarati in Inspire.php.
Se dobbiamo chiamare un comando specifico in Laravel, dovremmo apportare le modifiche appropriate in questa directory.
Eventi
Questa cartella include tutti gli eventi per il progetto.
Gli eventi vengono utilizzati per attivare attività, generare errori o convalide necessarie e fornire maggiore flessibilità. Laravel conserva tutti gli eventi in una directory. Il file predefinito incluso èevent.php dove vengono dichiarati tutti gli eventi di base.
Eccezioni
Questa cartella contiene tutti i metodi necessari per gestire le eccezioni. Contiene anche il filehandle.php che gestisce tutte le eccezioni.
Http
Il Httpla cartella ha sottocartelle per controller, middleware e richieste di applicazioni. Poiché Laravel segue il modello di progettazione MVC, questa cartella include il modello, i controller e le viste definiti per le directory specifiche.
Il Middleware la sottocartella include il meccanismo middleware, che comprende il meccanismo di filtro e la comunicazione tra risposta e richiesta.
Il Requests la sottocartella include tutte le richieste dell'applicazione.
Lavori
Il Jobsdirectory mantiene le attività in coda per l'applicazione Laravel. La classe base è condivisa tra tutti i lavori e fornisce una posizione centrale per posizionarli sotto lo stesso tetto.
Ascoltatori
I listener dipendono dagli eventi e includono metodi utilizzati per gestire eventi ed eccezioni. Ad esempio, il filelogin l'evento dichiarato include un file LoginListener evento.
Politiche
Le politiche sono le classi PHP che includono la logica di autorizzazione. Laravel include una funzionalità per creare tutta la logica di autorizzazione all'interno delle classi di criteri all'interno di questa sottocartella.
Fornitori
Questa cartella include tutti i fornitori di servizi necessari per registrare gli eventi per i server principali e per configurare un'applicazione Laravel.
Bootstrap
Questa cartella racchiude tutti gli script di bootstrap dell'applicazione. Contiene una sottocartella vale a direcache, che include tutti i file associati per la memorizzazione nella cache di un'applicazione web. Puoi anche trovare il fileapp.php, che inizializza gli script necessari per il bootstrap.
Config
Il configLa cartella include varie configurazioni e parametri associati necessari per il buon funzionamento di un'applicazione Laravel. Vari file inclusi nella cartella di configurazione sono come mostrato nell'immagine qui. I nomi dei file funzionano secondo la funzionalità ad essi associata.
Banca dati
Come suggerisce il nome, questa directory include vari parametri per le funzionalità del database. Include tre sottodirectory come indicato di seguito:
Seeds - Contiene le classi utilizzate per il database di unit test.
Migrations - Questa cartella aiuta nelle query per la migrazione del database utilizzato nell'applicazione web.
Factories - Questa cartella viene utilizzata per generare un gran numero di record di dati.
Pubblico
È la cartella principale che aiuta a inizializzare l'applicazione Laravel. Include i seguenti file e cartelle:
.htaccess - Questo file fornisce la configurazione del server.
javascript and css - Questi file sono considerati risorse.
index.php - Questo file è necessario per l'inizializzazione di un'applicazione web.
Risorse
La directory delle risorse contiene i file che migliorano la tua applicazione web. Le sottocartelle incluse in questa directory e il loro scopo sono spiegate di seguito:
assets - La cartella degli asset include file come LESS e SCSS, necessari per lo styling dell'applicazione web.
lang - Questa cartella include la configurazione per la localizzazione o l'internalizzazione.
views - Le viste sono file o modelli HTML che interagiscono con gli utenti finali e svolgono un ruolo primario nell'architettura MVC.
Si noti che la directory delle risorse verrà appiattita invece di avere una cartella delle risorse. La rappresentazione pittorica dello stesso è mostrata di seguito -
Conservazione
Questa è la cartella che memorizza tutti i log e i file necessari che sono necessari frequentemente quando un progetto Laravel è in esecuzione. Di seguito vengono fornite le sottocartelle incluse in questa directory e il loro scopo:
app - Questa cartella contiene i file che vengono chiamati in successione.
framework - Contiene sessioni, cache e visualizzazioni che vengono chiamate frequentemente.
Logs - Tutte le eccezioni e i registri degli errori vengono registrati in questa sottocartella.
Test
Tutti i casi di unit test sono inclusi in questa directory. La convenzione di denominazione per la denominazione delle classi di casi di test ècamel_case e segue la convenzione secondo le funzionalità della classe.
Venditore
Laravel è completamente basato sulle dipendenze del compositore, ad esempio per installare l'installazione di Laravel o per includere librerie di terze parti, ecc. La cartella Vendor include tutte le dipendenze del compositore.
Oltre ai file sopra menzionati, Laravel include anche altri file che svolgono un ruolo primario in varie funzionalità come la configurazione di GitHub, i pacchetti e le librerie di terze parti.
I file inclusi nella struttura dell'applicazione sono mostrati di seguito: