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:

Articoli correlati
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

Amazon lancia nuovi corsi di formazione gratuiti sull’intelligenza artificiale generativa

L'iniziativa "AI Ready" di Amazon, offre lezioni online per sviluppatori e altri professionisti tecnici, nonché per studenti delle scuole superiori…

29 Novembre 2023

Cos’è l’intelligenza artificiale generativa: come funziona, vantaggi e pericoli

L’intelligenza artificiale generativa è l’argomento di discussione tecnologico più caldo del 2023. Cos’è l’intelligenza artificiale generativa, come funziona e di…

28 Novembre 2023

Rainbow, la soluzione di telefonia e collaborazione basata su cloud di Alcatel-Lucent Enterprise, ottiene la prestigiosa certificazione CSPN da ANSSI

Alcatel-Lucent Enterprise è orgogliosa di annunciare che la sua piattaforma di collaborazione, Rainbow™ by Alcatel-Lucent Enterprise ha ottenuto la Certificazione…

28 Novembre 2023

BYD arriva a quota 6 milioni di veicoli a nuova energia prodotti

BYD ha centrato un risultato storico: sei milioni di veicoli a nuova energia usciti dalla catena di montaggio dello stabilimento…

28 Novembre 2023

Veracode rivoluziona la sicurezza cloud-native con un duo dinamico: DAST Essentials e Veracode GitHub App

Il leader della sicurezza nell'ambito dei software intelligenti presenta una difesa unificata contro le minacce dalla programmazione al cloud in…

28 Novembre 2023

Il software di finanza autonoma di HighRadius riceve il sesto brevetto IA per la funzionalità di acquisizione di dati da documenti

HighRadius ha creato oltre 25 brevetti registrati e in corso di registrazione; quello più recente è stato concesso per modelli…

28 Novembre 2023

Reply si aggiudica due AWS Partner Awards 2023: System Integrator Partner of the Year EMEA e Energy and Utilities Partner of the Year Global

Reply è stata premiata come System Integration Partner of the Year EMEA e Industry Partner of the Year Energy and…

28 Novembre 2023

Dialogare con Luigi Einaudi oggi è possibile, grazie all’intelligenza artificiale

Fondazione Einaudi, Fondazione Compagnia di San Paolo e Reply insieme per rendere l’eredità culturale di Luigi Einaudi accessibile a tutti.…

28 Novembre 2023

bp sceglie AssetWise Lifecycle Information Management e AssetWise Reliability come standard per la gestione delle informazioni e l’integrità degli asset

Per un approccio a livello aziendale alla gestione delle informazioni sugli asset in parallelo con la gestione dell'integrità strutturale e…

27 Novembre 2023

Innovazioni basate sull’intelligenza artificiale all’#RSNA23 che consentono agli operatori sanitari di concentrarsi sulla cura dei pazienti

Le nuove innovazioni aiutano gli ospedali e i sistemi sanitari a fornire costantemente ai pazienti cure accessibili e di alta…

26 Novembre 2023