Cos’è Laravel e come funziona


Pubblicato il (1 anno fa)

Tempo di Lettura Stimata: 6 minuti

Capitoli Totali: 6

Immagine di anteprima dell'articolo Cos’è Laravel e come funziona

In questo breve articolo di introduzione - una volta per tutte - avrai modo di approfondire tutti quei prerequisiti teorici accennati nei tutorial, ma mai spiegati: si parlerà dei cosiddetti Knowledge Requirements.

Cosa si intende per OOP

OOP sta per Object Oriented Programming, ovvero Programmazione Orientata ad Oggetti. Il paradigma OOP nasce per migliorare l’astrazione logica della programmazione procedurale, troppo limitata e lenta. Come? Introducendo l’elemento Oggetto (o istanza) che si occuperà di eseguire un solo compito. Gli oggetti menzionati poco sopra sono composti da Classi, ovvero dei modelli contenenti variabili e funzioni ancora più specifiche. Queste variabili e funzioni prendono il nome, rispettivamente, di Attributi e Metodi. ![1_d_IlD1wYbKg9GS1d58pJ0w.webp](https://francescomansi.me/storage/RbJIDivyfBh2iIljeGWWNMUQxcR6xcDQdizjkARb.webp “Esempio di Attributi e metodi”) Lo stesso oggetto potrà essere richiamato più volte durante il flusso logico. Ma, a seconda del metodo richiesto, utilizzerà attributi diversi con output differenti.

Cos’è PHP

Acronimo ricorsivo di Hypertext Preprocessor (o alle origine di Personal Home Page), PHP è un linguaggio di scripting interpretato e attualmente utilizzato principalmente per sviluppare applicazioni lato server (backend).

Nel 1994 Rasmus Lerdorf, il suo creatore, aveva concepito PHP come una raccolta di script C.G.I. (Common Gateway Interface) — adesso passato al FastCGI — che permettevano una facile gestione delle pagine personali in maniera dinamica e veloce. Con le versioni successive venne introdotto il supporto a mSQL - il predecessore di MySQL - e una gestione più semplice dei form.

Cosa significa MVC

MVC — Model-View-Controller — è uno schema architetturale molto diffuso nello sviluppo di software, visto che si occupa della suddivisione del flusso logico in tre blocchi interconnessi tra loro.

Funzionalità di Business: Il blocco che gestisce direttamente i dati, i principi logici e le regole dell’applicazione. Questo significa che lo stesso dato può avere un output diverso in base all’interfaccia grafica e al tipo di richiesta, il tutto senza modificare l’informazione sorgente. Logica di Controllo: Il nucleo del sistema (Core) è il blocco che contiene materialmente il codice con tutte le istruzioni scritte dallo sviluppatore. Intercetta gli input dell’utente, li elabora, interroga i dati e genera un output non interpretato. Logica di Presentazione: Interfaccia grafica (GUI) o Vista (View), è il blocco che si interfaccia direttamente con l’utente finale. Qui vengono visualizzati ed interpretati tutti gli output generati dal sistema.

![1_qwptlGBt9VIKOu4VloR7Vw.webp](https://francescomansi.me/storage/QIxwSgwJ07tyfL66s7mJAAfKMjTMJnT23CAkmxoo.webp “Flusso MVC”)

Seguendo lo schema proposto poco sopra, è facile evincere che l’utente non potrà mai avere l’accesso diretto sui dati. Allo stesso dato, quindi, potranno accedervi più utenti con risultati diversi. Il principio del Divide et Impera non è applicabile solo lato utente. Vista l’astrazione dei blocchi, due sviluppatori potranno lavorare in modo asincrono sul Backend e Fronted dell’applicazione senza problemi di sorta.

Laravel sposa appieno questo principio regalando un’esperienza di sviluppo senza eguali.

Cos’è un Framework

Un Framework è un insieme di classi (ricordi il capitolo 1⃣ ️Cosa si intende per OOP?) predefinite e facilmente implementatili, su cui un’applicazione può essere progettata e sviluppata. Definisce uno standard di sviluppo rendendo possibile la realizzazione di librerie e integrazioni ad-hoc.

L’utilizzo di Framework è diventato un requisito fondamentale per restare al passo con i frenetici tempi di sviluppo odierno. Funzioni basilari come l’autenticazione, la validazione dei dati in un form o il routing delle pagine sono già disponibili e ben documentate.

L’utilizzo di un Framework in un progetto non è obbligatorio, ma è la scelta più sensata che tu possa fare. 1_lXHIIVi4ISqva8ErFsuWnA.webp

Tutto quello che troveremo nel framework “Conad” sarà stato ispezionato e approvato da esperti del settore. Non dovremo fare altro che pagare e cucinare.

Senza framework, invece, dovremo concentraci non solo sulla preparazione della cena ma anche di esaminare l’alimento e riconoscere eventuali deterioramenti.

Approfondimenti

Che cos’è Laravel

“Originariamente si chiamava Bootplant. Ma il nome non mi convinceva molto. Nelle cronache di Narnia, Cair Paravel era il nome di un castello in cui vivevano i re e le regine del regno. Ho pensato così a Laravel. Ritenevo che il nome avesse un suono elegante e sofisticato. Il nome ideale per questo Framework “.

Rilasciato da Taylor Otwell con l’intento di rendere lo sviluppo web facile e divertente, Laravel ha ormai superato le 70K stelle su Github ed è diventato il framework PHP più utilizzato e apprezzato da gran parte dei web developer PHP.

Non ha catturato l’attenzione soltanto della classe OLD SCHOOL di PHP, che hanno visto in Laravel una ventata di aria fresca ma, gradualmente, ha attirato anche una schiera di curiosi che si sono lasciati ammaliare dall’eleganza e pulizia del codice.

Secondo ZipRecruiter, in America, nel 2020 lo stipendio medio di un Laravel Developer si aggira sui $84,674 l’anno. Niente male se parli un buon inglese e sogni di andare a vivere negli States, no? Ovviamente il valore è da prendere con le pinze. Utopistico in Italia. Ma ho preferito scriverti quella cifra per dimostrati che Laravel è una realtà. Una bellissima realtà.

Come funziona Laravel

Obbligatorio ed essenziale per la corretta esecuzione di Laravel, Composer è un PHP dependency manager obbligatorio per la corretta esecuzione del Framework. Avrai accesso a tutte le librerie presenti su Packagist.org, perfettamente compatibili con Laravel e documentate ottimamente.

Non sai come installare Laravel sul tuo computer? Clicca qui e segui la guida!

Ma Laravel non è solo un contenitore di “plugin”, ha diverse features che lo rendono interessante sotto molto aspetti:

Starter Kit per autenticazione

Stufo di dover implementare l’autenticazione ogni volta che crei un nuovo progetto? Laravel ha creato dei kit pronti all’uso, chiamati appunto Starter Kit, che ti permetteranno di evitare la noiosa reimplementazione della logica di business per gestire Login, Registrazione, Password dimenticata e molto altro. Avrai a disposizione Laravel Breeze nelle varianti semplici con Blade e piu complesse con con Vue.js/Inertia.

Tabelle gestite come classi e ORM Eloquent

Utilizzando il concetto di MVC, tutte le tabelle di un ipotetico database MySql verranno gestite come Classi. Eloquent, inoltre, ti permetterà di eseguire le classiche query MySql:

SELECT * FROM users

In un linguaggio PHP-like:

User::all();

Blade, il template engine

Blade è il sistema di templating incorporato in Laravel, offre una sintassi semplice e intuitiva per definire la struttura del documento HTML delle pagine web, consentendo l’inserimento di variabili, istruzioni di controllo del flusso (come if, for, foreach), layout di base e sezioni di contenuto personalizzate.

Inoltre, Blade è estremamente flessibile e può essere personalizzato per soddisfare le esigenze specifiche dell’applicazione, ad esempio l’aggiunta di direttive personalizzate per il rendering di determinati elementi grafici o funzionalità avanzate come la cache dei template o la struttura a componenti.

Eccellente gestione delle rotte

Il sistema di routing di Laravel consente di definire in modo completamente personalizzabile le rotte dell’applicazione web, abilitando la gestione delle richieste HTTP e la relativa risposta. In questo modo è possibile organizzare il flusso dell’applicazione in modo chiaro e strutturato.

Gestione Middleware

La creazione di Middleware in Laravel è semplificata grazie alla presenza di una serie di strumenti integrati, che permettono di definire e applicare in modo semplice e intuitivo azioni specifiche da eseguire in base alle richieste in arrivo.

Localizzazione

Il sistema integrato per la localizzazione permette la gestione di più lingue in modo facile e veloce. Potrai definire dei segnaposto con delle label in modo da strutturare le view per ogni evenienza.

Permessi, Gate e Policy

La gestione di gate e policy in Laravel permette di definire e gestire l’accesso ai contenuti dell’applicazione in modo granulare, consentendo di definire chi può accedere a determinate risorse o svolgere determinate azioni in base al ruolo dell’utente o ad altre regole definite dall’amministratore.

Francesco Mansi

Chi è l'autore

Da quando le nonnine al supermercato hanno smesso di chiamarmi giovanotto posso finalmente fingermi un adulto con esperienza.
Lavoro con Laravel dalla versione 5.5 e con PHP da più di 10 anni. Non sono un guru ma adoro schematizzare e mettere per iscritto tutto quello che studio, quindi quello che troverai qui sono solamente appunti che spero possano servirti.

Francesco Mansi


Articoli Correlati
Immagine in Evidenza per l'articolo Guida su come installare Laravel su Windows e Mac
Laravel

Guida su come installare Laravel su Windows e Mac

In questo articolo, ti illustrerò tre metodi per installare Laravel sia su Mac che su Windows

Immagine in Evidenza per l'articolo Cosa c’è di Nuovo in Laravel 10
Laravel

Cosa c’è di Nuovo in Laravel 10

Laravel 10 è la prossima versione principale di Laravel e il suo rilascio è previsto per il 7 Febbraio 2023. Scopriamo insieme le nuove funzionalità.

Immagine in Evidenza per l'articolo Come creare una To-Do List in Laravel con Nes.Css
Laravel

Come creare una To-Do List in Laravel con Nes.Css

In questo articolo imparerai come creare una To-Do List utilizzando il framework PHP Laravel e la libreria CSS NES.CSS.