Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Introduzione: Laravel Vs. approccio from scratch

Capiamo perché Laravel è una scelta ideale per creare sistemi di e-commerce in PHP senza dover reinventare soluzioni già implementate e affidabili
Capiamo perché Laravel è una scelta ideale per creare sistemi di e-commerce in PHP senza dover reinventare soluzioni già implementate e affidabili
Link copiato negli appunti

Questa guida rappresenta l'ideale continuazione della trattazione dedicata a come Creare un e-commerce con PHP. In essa seguiremo lo stesso percorso visto in precedenza ma in questo caso useremo il framework Laravel per l'implementazione del nostro sistema di e-commerce, non partiremo quindi da zero (from scratch).

Perché Laravel: il pattern MVC

Nella guida precedente gran parte del nostro lavoro consisteva nell'implementare da zero molte delle feature che in Laravel vengono già gestite di default dal framework.

Sebbene a livello didattico questo ha un senso, a livello lavorativo significa investire ore di lavoro per qualcosa che dovrebbe già essere presente. Pensiamo ad esempio al routing: abbiamo dovuto implementare una classe che mettesse in correlazione un URL con una specifica action di un controller.

In Laravel tutto ciò è già presente, quindi non dobbiamo fare altro che scrivere il codice della nostra route senza preoccuparsi del binding.

In precedenza avevamo implementato il pattern MVC ma la nostra implementazione non era completa, soprattutto per quanto riguarda la struttura dei model.

Al contrario Laravel implementa il pattern MVC in modo completo, fornendo ai model l'esatto livello di astrazione per poter operare con la base di dati sottostante.

Questo fa in modo che possiamo sfruttare la separazione tra model, view e controller per scrivere il nostro codice molto più rapidamente.

Poiché Laravel utilizza il template engine Blade per le view, ne risulta che gran parte della logica che era stata iniettata nei nostri template può essere rimossa o comunque enormemente semplificata.

Approccio TDD

Inoltre Laravel adotta l'approccio TDD (Test Driven Development) in cui l'integrazione di un nuovo componente non può prescindere dalla realizzazione di una test unit che ne verifichi la validità a livello logico e operazionale.

In precedenza la nostra classe che gestiva il carrello era stata implementata ed inserita as is, senza alcun test preliminare. Ciò significa che se fossero stati presenti degli errori logici al suo interno, l'unico modo di appurarlo sarebbe stato quello di aggiungere, modificare e rimuovere prodotti direttamente nel browser.

L'approccio manuale è da rigettare perché aumenta in modo quasi esponenziale i tempi di sviluppo. Ogni qualvolta aggiungiamo un componente dobbiamo verificare il suo comportamento nel browser. In progetti più complessi, questo tipo di approccio porta alla creazione di codice difficilmente gestibile a lungo termine.

Laravel: tempi di sviluppo e sicurezza

Laravel fornisce anche una struttura standard per i file e le directory di un progetto. A differenza della nostra implementazione, il core di un'app Laravel risiede fuori dalla document root del nostro sito. L'unica directory esposta è public, che funge da document root e contiene solo le assets statiche, il file .htaccess e il file index.php per il bootstrap dell'applicazione.

Come in Zend Framework, questo approccio aumenta di molto il livello di sicurezza globale della nostra applicazione. Ad esempio anche i file caricati dagli utenti possono essere salvati in una directory di storage fuori dalla document root. Ciò significa che, usando altri accorgimenti lato server, Laravel di fatto è già pronto per soddisfare i requisiti di sicurezza dei dati richiesti dal GDPR, la normativa europea sul trattamento dei dati.

Infine, Laravel rappresenta uno dei framework più rappresentativi e moderni dell'ecosistema dei framework PHP basati sul pattern MVC.

Ti consigliamo anche