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. 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. 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 Frontend dell’applicazione senza problemi di sorta.
Laravel sposa appieno questo principio regalando un’esperienza di sviluppo senza eguali.
- 📙 Design patterns - Pearson [🇮🇹]
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.
Tutto quello che troveremo nel framework sarà stato ispezionato e approvato da esperti del settore. Non dovremo fare altro che implementare le nostre funzionalità specifiche.
Senza framework, invece, dovremo concentraci non solo sulle funzionalità basilari (routing, connesisone al DB ecc…) ma anche di tutte le nostre funzionalità specifiche.
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.
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.
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.