Laravel: i vantaggi di un framework vs plain PHP

Laravel: i vantaggi di un framework vs plain PHP

Pubblicato il 06/05/2021


laravel php sito web framework

Ogni nuovo progetto porta con sé importanti decisioni per il programmatore. Tra queste, la scelta dello stack tecnologico backend non va sottovalutata. 
Laravel è un framework basato sul linguaggio server-side PHP, mantiene quindi tutte le funzionalità e i costrutti del linguaggio ma mette a disposizione diversi componenti che possono semplificare lo sviluppo di determinate parti di codice come le integrazioni al database, i controlli di sicurezza e la gestione delle rotte dinamiche.

Con entrambi è possibile sviluppare applicativi web, ma vediamo nel dettaglio sulla base di cosa fare questa scelta.

Laravel è un framework open-source scritto in PHP. Il creatore, Taylor Otwell, lo ha realizzato a partire da un altro framework, Symfony, integrando caratteristiche come l’autenticazione dell’utente. Tra i siti che lo utilizzano troviamo Vogue Archive, gli archivi online della prestigiosa rivista di moda, e Laracast, una piattaforma con corsi e materiali formativi per programmatori.

PHP è un linguaggio di programmazione open-source creato in origine per dare vita a pagine dinamiche. Oggi si usa spesso per sviluppare pagine web, integrandolo con i codici HTML. Lo utilizzano moltissimi siti tra cui Facebook e Wikipedia, si pensi che in generale l’80% dei siti web sono gestiti da codice PHP.

Laravel e PHP nella versione base, il cosiddetto “plain PHP”, sono opzioni solide e affidabili, ma non per questo adatte a qualsiasi progetto indistintamente. Vediamo quindi più nel dettaglio le caratteristiche di un framework come Laravel vs un linguaggio nativo come PHP. 

Architettura di Laravel vs plain PHP

Laravel si basa su un’architettura model-view-controller (MVC), che rende gestibile il processo di sviluppo anche per siti più complessi.

L'architettura MVC impone una separazione tra la logica di business (come deve funzionare l’applicativo), le sue caratteristiche funzionali e la logica di presentazione, ossia come vengono mostrati i dati nell’interfaccia utente.

Grazie al pattern MVC è quindi possibile separare il ruolo dei programmatori. Sviluppatore backend e frontend possono così lavorare allo stesso progetto contemporaneamente.

Con PHP è possibile impiegare diversi framework, molti dei quali basati sull’architettura MVC. Tra questi abbiamo naturalmente Laravel oltre a CodeIgniter, Ubiquity, CakePHP, Symfony, Zend e tanti altri. Di per sé, senza framework aggiuntivi, PHP non offre i vantaggi di un pattern architetturale come la separazione di logica di business e logica di presentazione. Utilizzando soltanto PHP è quindi necessario scrivere l’intero codice da zero.

Adattabilità e scalabilità di Laravel vs plain PHP

Laravel offre una buona scalabilità che lo rende ideale per progetti più complessi. Ciò si deve al fatto che con questo framework è possibile realizzare applicazioni stratificate e dunque più semplici da espandere. Per ottenere un’ottima scalabilità orizzontale con Laravel è importante utilizzare un buon database e un load balancer. Per quanto riguarda l’adattabilità, essendo un framework il programmatore è limitato alle funzionalità implementate nel framework, sfruttando PHP tuttavia è possibile andare a modificare o integrare nuove funzionalità scrivendo il codice da zero, o installando pacchetti già esistenti con composer o altri package manager.

PHP è un linguaggio relativamente scalabile, ottimo per applicazioni in scala più ridotta. Per esempio, per blog senza funzionalità complesse, utilizzare PHP può far risparmiare tempo. Non è invece la scelta più indicata per progetti che richiedano in futuro considerevoli espansioni, in quanto sarebbe poi necessario riscrivere il codice da capo, a meno che lo sviluppo iniziale sia già stato pensato in tale ottica definendo quindi una struttura di base a cui sarà possibile nel tempo integrare porzioni di codice dette “microservizi”.

Prestazioni e sicurezza di Laravel vs plain PHP

Per quanto riguarda le prestazioni, le applicazioni in Laravel sono a volte considerate un po’ lente. Questo potrebbe portare ad alcuni problemi per siti che utilizzino questo framework, ad esempio in termini di SEO.

Ci sono però modi di ottimizzare la performance, come suggerisce l’attiva community di Laravel. Uno di questi è sfruttare la cache per caricare informazioni e dati già precedentemente messi in memoria. Così facendo si riduce il tempo di risposta dell’applicazione.

PHP è generalmente più agile, in quanto ha una struttura più semplice e un codice più conciso. I test benchmark sulla versione più recente, PHP 8, mostrano inoltre un significativo miglioramento nelle prestazioni rispetto alle versioni precedenti. 

Per quanto riguarda la sicurezza, Laravel offre strumenti integrati eccellenti tra cui protezione dalle SQL Injection e dagli attacchi XXS, oltre ad autenticazione e autorizzazione dell’utente. 

PHP, d’altro canto, non ha alcuna funzionalità di sicurezza integrata. Sta allo sviluppatore, quindi, assicurarsi di aggiungere la necessaria protezione per evitare che l’applicazione rimanga vulnerabile alle minacce, questo può essere fatto scrivendo il codice da zero oppure integrando pacchetti e plugin sviluppati da altri e resi disponibili su piattaforme come Github.

Supporto database di Laravel vs plain PHP

Al momento, Laravel può attingere a quattro diversi database, ovvero MySQL, SQL, PostgreSQL, e SQLite. 

Grazie a Eloquent ORM e Fluent Query Builder gestire questi database in Laravel è un processo relativamente semplice. Persino creare connessioni a più database differenti non comporta particolari difficoltà con questo framework.

I principali database supportati da PHP includono Oracle, IBM-DB2, PostgreSQL, MariaDB, Sybase e MySQL. L’estensione PDO (PHP Data Objects) è particolarmente utile per la gestione dei database in PHP, in quanto permette di accedervi tramite un’interfaccia unica grazie ai driver specifici per ogni tipologia di database. Questo evita, per esempio, di dover scrivere lunghe linee di codice per passare da un database a un altro.

Community e diffusione di Laravel vs plain PHP

I siti web che utilizzano PHP dal lato server sono oltre 5,5 milioni, ovvero il 79% del totale

Laravel, per la sua stessa natura di framework basato sul linguaggio PHP, non può certo avvicinarsi a questi numeri. La sua community online è però vasta con oltre 46.000 utenti attivi e più di 60.000 stelle su GitHub.

Non è soltanto la community internazionale a occuparsi di Laravel. Ci sono anche alcuni gruppi Facebook nostrani, come Laravel Italia, su cui confrontarsi e scambiarsi informazioni in italiano.

Gli sviluppatori specializzati in PHP sono oltre 5,5 milioni. Con diversi livelli di esperienza e specializzazioni, costituiscono un’enorme community globale. Questa si divide a sua volta in gruppi locali come PUG (PHP User Group), che ha diverse succursali in città e regioni italiane.

Grazie alla vasta e sempre attiva community di PHP vengono organizzati periodicamente convegni e meeting anche internazionali basati su talk di esperti nel settore, come ad esempio il PHP-day che ogni anno attira migliaia di sviluppatori e persone interessate al settore.

Conclusione: è meglio Laravel vs plain PHP?

Come abbiamo visto, entrambe le soluzioni offrono vantaggi specifici. PHP è semplice e flessibile, perfetto per applicazioni di piccola scala realizzate scrivendo il codice da zero. È inoltre indicato per siti che richiedano l’elaborazione di numerose immagini, oppure applicazioni da scalare tramite integrazione cloud.

Laravel, d’altro canto, permette di realizzare applicazioni web di maggior complessità. Grazie a strumenti e soluzioni integrate ha una curva di apprendimento medio-bassa, che lo rende ideale anche per sviluppatori junior. L’utilizzo di framework come Laravel o Symfony permette quindi di concentrarsi sulla parte funzionale dell’applicativo, avendo già integrate tutte le parti più strutturali come la sicurezza, l’integrità dei dati, la gestione degli accessi e il routing.

L’importante, dunque, è essere consapevoli dei punti di forza e scegliere lo strumento adeguato per il progetto in questione. Si sa, del resto, che chi ben comincia è a metà dell’opera.

Impara a programmare in 3 mesi con il Corso di Coding Hackademy su Laravel PHP

Diventa Sviluppatore web in 3 mesi

Scopri il coding bootcamp Hackademy

Programma Completo