Cos’è Laravel, come funziona e architettura di base per la creazione di applicazioni WEB
Laravel è un framework Web basato su PHP per la creazione di applicazioni Web di fascia alta, utilizzando le sue sintassi semplici e potenti.
Il framework Laravel PHP nasce con una solida raccolta di strumenti, e fornisce l’architettura alle applicazioni prodotte. E’ un framework PHP open source, che usa l’architettura MVC:
- Framework: è la raccolta di metodi, classi o file che il programmatore utilizza, e può anche estenderne le funzionalità utilizzando il proprio codice.
- Architettura: è il modello di progettazione specifico che segue il framework. Laravel segue l’architettura MVC.
- Model View Controller
- Vantaggi e caratteristiche
- Creazione di sistemi di autorizzazione e autenticazione
- Integrazione con strumenti
- Integrazione del servizio di posta
- Automazione dei Test
- Separazione del codice di business logic dal codice di presentazione
- Risoluzione delle vulnerabilità tecniche più comuni
- CRON: pianificazione delle attività di configurazione e gestione
- Creazione progetto Laravel
- Struttura dell’applicazione in laravel php
Tempo di lettura stimato: 9 minuti
Model View Controller
M.V.C.
e un acronimo composto da tre lettere, di seguito il significato:
- M:
Model
. Un modello è una classe che si occupa di un database. Ad esempio, se abbiamo utenti in un’applicazione, allora avremo un modello di utenti che si occupa di interrogare la tabella degli utenti, se abbiamo un modello di utenti, allora avremo anche una tabella degli utenti. - V:
View
. Una vista è una classe che si occupa di tutto ciò che possiamo vedere sull’applicazione nel browser. - C:
Controller
. Un controller è l’intermediario che si occupa sia del modello che della vista. Un controller è la classe che recupera i dati dal modello e li invia alla classe di visualizzazione.
Vantaggi e caratteristiche
Creazione di sistemi di autorizzazione e autenticazione
Ogni proprietario dell’applicazione web deve essere sicuro che utenti non autorizzati non accedano a risorse protette. Laravel fornisce un modo semplice per implementare l’autenticazione. Fornisce inoltre un modo semplice per organizzare la logica di autorizzazione e controllare l’accesso alle risorse.
Integrazione con strumenti
Laravel è integrato con molti strumenti che creano un’app più veloce. Non è solo necessario creare l’app, ma anche creare un’app più veloce. L’integrazione con il back-end di memorizzazione nella cache è uno dei passaggi principali per migliorare le prestazioni di un’app Web. Laravel è integrato con alcuni popolari back-end della cache come Redis e Memcached.
Integrazione del servizio di posta
Laravel è integrato con il servizio di posta. Questo servizio viene utilizzato per inviare email di notifica. Fornisce un’API pulita e semplice che ti consente di inviare rapidamente l’e-mail tramite un servizio locale, o basato su cloud.
Automazione dei Test
Testare un prodotto è molto importante per assicurarsi che il software funzioni senza errori, bug e arresti anomali: ogni qualvolta viene rilasciata una nuova versione. Sappiamo che i test automatici richiedono meno tempo rispetto ai test manuali, sopratutto per i test di non regressione. Laravel è stato sviluppato pensando anche ai test.
Separazione del codice di business logic dal codice di presentazione
La separazione tra codice di business logic e codice di presentazione consente ai progettisti di layout HTML di modificare l’aspetto senza interagire con gli sviluppatori. Un bug può essere risolto dagli sviluppatori più velocemente se viene fornita la separazione tra il codice di business logic (Controller) e il codice di presentazione (View). Sappiamo che Laravel segue l’architettura MVC, quindi la separazione è elemento fondante.
Risoluzione delle vulnerabilità tecniche più comuni
Laravel è un framework sicuro in quanto protegge l’applicazione Web da tutte le vulnerabilità di sicurezza. La vulnerabilità è uno degli aspetti più importante nello sviluppo di applicazioni web. L’organizzazione americana OWASP Foundation, definisce le vulnerabilità di sicurezza più importanti come SQL injection, contraffazione di richieste, scripting e così via.
CRON: pianificazione delle attività di configurazione e gestione
Le applicazioni WEB richiedono sempre dei meccanismi di pianificazione delle attività per pianificare ed eseguire le attività in tempo. Ad esempio quando inviare le e-mail agli abbonati o quando ripulire le tabelle del database alla fine della giornata. Per pianificare le attività, gli sviluppatori devono creare la voce Cron per ciascuna attività, e lo scheduler dei comandi di Laravel definisce la pianificazione dei comandi.
Creazione progetto Laravel
Per creare il tuo primo progetto Laravel, è necessario avere il Composer
installato. Se non è presente sulla tua macchina, procedi all’installazione come descritto nel nostro articolo sul Composer.
Successivamente crea una nuova directory nel tuo sistema per il tuo nuovo progetto Laravel. Successivamente, spostati nel percorso in cui hai creato la nuova directory, ed esegui il comando di creazione progetto composer create-project
, digitando il seguente comando:
composer create-project laravel/laravel myex-app
Questo comando (versione 9.x) crea il progetto di nome myex-app
Oppure puoi creare nuovi progetti Laravel
installando globalmente il programma di installazione di Laravel
tramite Composer
:
composer global require laravel/installer
laravel new myex-app
Dopo aver creato il progetto, avvia il server di sviluppo locale di laravel php usando il comando serve
dell’Artisan CLI
di Laravel
:
php artisan serve
Dopo aver avviato il server di sviluppo Artisan
, la tua applicazione sarà accessibile nel tuo browser Web all’indirizzo http://localhost:8000
. Ora, sei pronto per usare Laravel
. Naturalmente, potresti anche voler configurare un database.
Struttura dell’applicazione in laravel php
La struttura di Laravel è fondamentalmente la struttura di cartelle, sottocartelle e file inclusi in un progetto. Una volta creato un progetto in Laravel, possiamo vedere la struttura dell’applicazione come mostrato nell’immagine della cartella principale di Laravel:
Config
La cartella config include configurazioni e parametri associati, necessari per il buon funzionamento di un’applicazione Laravel. I diversi file inclusi nella cartella config sono elencati nell’immagine qui sotto. I nomi dei file rappresentano gli ambiti di configurazione.
DataBase
Questa directory include vari parametri per le funzionalità del database. Include tre sottodirectory:
- Seeds: contiene le classi utilizzate per il database dei test unitari;
- Migrations: questa cartella si usa per la generazione e l’allineamento della struttura del DB con l’applicazione;
- Factories: questa cartella viene utilizzata per la generazione di un alto numero di record di dati.
Public
È la cartella principale che aiuta a inizializzare l’applicazione laravel php, cioè lo start dell’applicazione. Include i seguenti file e cartelle:
- .htaccess: file che fornisce la configurazione del server;
- javascript e css: contengono tutti i file risorse dell’applicazione laravel php;
- index.php: file necessario per l’inizializzazione di un’applicazione web.
Resources
La directory Resources contiene i file che migliorano l’applicazione web. Le sottocartelle incluse in questa directory e il loro scopo:
- assets: cartella include file come LESS e SCSS, necessari per lo stile dell’applicazione web;
- lang: include la configurazione per la localizzazione o l’internalizzazione;
- views: sono i file HTML o i modelli che interagiscono con gli utenti finali e svolgono un ruolo primario nell’architettura MVC.
Storage
Questa è la cartella che memorizza tutti i logs e i file che sono necessari quando un progetto laravel php è in esecuzione. Di seguito sono riportate le sottocartelle incluse in questa directory e il loro scopo −
- app: auesta cartella contiene i file che vengono richiamati in successione;
- framework: contiene le sessioni, cache e viste che vengono chiamate frequentemente;
- Logs: contiene i file che tracciano i problemi in fase di esecuzione, in particolare tutte le eccezioni e i registri degli errori.
Tests
Tutti i casi di unit test sono contenuti in questa directory. Il naming per la denominazione delle classi di test case è camel_case e segue la convenzione in base alla funzionalità della classe.
Vendor
Laravel è basato sulle dipendenze gestite dal Composer, ad esempio per installare il setup di Laravel o per includere librerie di terze parti, ecc.
La cartella Vendor contiene tutte le dipendenze di Composer.