Articoli

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.

M.V.C.

Acronimo composto da tre lettere, di seguito il significato:

  • M: Modello. 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: Vista. 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:

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.
composer global require laravel/installer
laravel new myex-app

Dopo aver creato il progetto, avvia il server di sviluppo locale di Laravel 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

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, 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;
  • 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 è 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.

Ercole Palmeri

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.

Articoli recenti

Come usare le visualizzazioni e il layout in PowerPoint

Microsoft PowerPoint fornisce diversi tipi di strumenti per rendere le presentazioni fruibili, interattive e adatte a diversi scopi. Gli strumenti…

20 Maggio 2024

Apprendimento automatico: confronto tra Random Forest e albero decisionale

Nel mondo del machine learning, sia gli algoritmi random forest che decision tree svolgono un ruolo fondamentale nella categorizzazione e…

17 Maggio 2024

Come migliorare le presentazioni Power Point, consigli utili

Esistono molti suggerimenti e trucchi per fare ottime presentazioni. L'obiettivo di queste regola è di migliorare l'efficacia, la scorrevolezza di…

16 Maggio 2024

È ancora la velocità la leva nello sviluppo dei prodotti, secondo il report di Protolabs

Pubblicato il rapporto "Protolabs Product Development Outlook". Esamina le modalità in cui oggi vengono portati i nuovi prodotti sul mercato.…

16 Maggio 2024

I quattro pilastri della Sostenibilità

Il termine sostenibilità è oramai molto usato per indicare programmi, iniziative e azioni finalizzate alla preservazione di una particolare risorsa.…

15 Maggio 2024

Come consolidare i dati in Excel

Una qualsiasi operazione aziendale produce moltissimi dati, anche in forme diverse. Inserire manualmente questi dati da un foglio Excel a…

14 Maggio 2024

Analisi trimestrale Cisco Talos: mail aziendali nel mirino dei criminali Manifatturiero, Istruzione e Sanità i settori più colpiti

La compromissione delle mail aziendali sono aumentate nei primi tre mesi del 2024 più del doppio rispetto all’ultimo trimestre del…

14 Maggio 2024

Principio di segregazione dell’interfaccia (ISP), quarto principio S.O.L.I.D.

Il principio di segregazione dell'interfaccia è uno dei cinque principi SOLID della progettazione orientata agli oggetti. Una classe dovrebbe avere…

14 Maggio 2024

Leggi Innovazione nella tua Lingua

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.

Seguici