Blog

Laravel

Creare applicazioni web con Laravel: routing, modelli Eloquent, autenticazione, code e deploy, spiegati con esempi pratici da usare in progetti reali.

Nessun articolo qui al momento!

Non abbiamo ancora scritto su questo tema. Esplora un altro argomento o torna a trovarci presto!

Questions about this topic

Quick, clear answers to what readers ask most about this topic.

Che cos'è Laravel?

Laravel è un framework PHP gratuito e open source per costruire applicazioni web. Offre agli sviluppatori parti già pronte per routing, database, accesso, email, code e test, così si scrive meno codice ripetuto. Segue lo schema model, view, controller e ha una grande comunità.

A cosa serve Laravel?

Laravel serve a costruire applicazioni web come gestionali, portali clienti, negozi online, piattaforme di prenotazione e API per app mobili. È adatto a qualsiasi progetto che abbia utenti, un database e regole di business. Molte aziende fanno girare su Laravel grandi sistemi privati perché il framework è stabile e facile da estendere.

Laravel è adatto ai principianti?

Laravel è adatto ai principianti che conoscono già le basi di PHP, perché il suo codice è leggibile e la documentazione ufficiale è chiara. Ha anche una grande comunità, molti tutorial e starter kit che preparano per te le pagine di accesso. Imparare prima il PHP puro rende il framework molto più facile da capire.

Come si installa Laravel sul proprio computer?

Laravel si installa installando prima PHP e Composer, poi eseguendo composer create-project laravel/laravel seguito dal nome del progetto. L'installer di Laravel, lanciato con laravel new, fa la stessa cosa e propone gli starter kit. Dopo, php artisan serve avvia un server locale per aprire l'app nel browser.

Quale versione di PHP richiede Laravel?

Laravel richiede una versione recente di PHP 8, e ogni release di Laravel indica la versione minima di PHP supportata. Le nuove release abbandonano le versioni di PHP più vecchie quando queste perdono il supporto di sicurezza. Conviene sempre controllare la guida all'aggiornamento della versione di Laravel che si intende usare.

Che cos'è il routing in Laravel?

Il routing in Laravel collega un indirizzo web e un metodo HTTP, come GET o POST, al codice che risponde. Le rotte si scrivono in file come routes/web.php per le pagine e routes/api.php per le API. Una rotta può chiamare una closure o un metodo di un controller e può avere middleware per l'accesso e altri controlli.

Che cos'è Eloquent in Laravel?

Eloquent è l'ORM di Laravel, la parte che permette di lavorare con le tabelle del database come classi PHP chiamate model. Ogni model corrisponde a una tabella e ogni oggetto a una riga, quindi si leggono e salvano i dati senza scrivere SQL. Eloquent gestisce anche relazioni come uno-a-molti e molti-a-molti.

Come funzionano le relazioni di Eloquent in Laravel?

Le relazioni di Eloquent in Laravel sono metodi del model, come hasMany, belongsTo e belongsToMany, che descrivono come sono collegate due tabelle. Una volta definite si leggono i dati collegati, per esempio $order->customer, senza scrivere una join. L'eager loading con il metodo with carica le righe collegate in un colpo solo ed evita query ripetute e lente.

Che cos'è il problema delle query N+1 in Laravel?

Il problema delle query N+1 in Laravel si verifica quando il codice carica un elenco di record e poi esegue una query in più per ogni record per recuperare i dati collegati. Una pagina con 100 ordini può finire per eseguire 101 query e diventare lenta. L'eager loading con il metodo with risolve il problema recuperando le righe collegate con una sola query.

Cosa sono le migrazioni in Laravel?

Le migrazioni in Laravel sono file PHP che creano e modificano le tabelle del database tramite codice. Il comando php artisan migrate le applica, così ogni sviluppatore e ogni server hanno la stessa struttura del database. Dato che le migrazioni stanno nel controllo di versione, la storia di ogni modifica alle tabelle resta conservata.

Che cos'è Blade in Laravel?

Blade è il motore di template di Laravel per scrivere pagine HTML con tag semplici per cicli, condizioni e layout. Blade effettua di default l'escape dei valori stampati, e questo protegge le pagine dal cross-site scripting. I template vengono compilati in PHP puro e messi in cache, quindi Blade non aggiunge quasi nessun costo a ogni richiesta.

Come funziona l'autenticazione in Laravel?

L'autenticazione in Laravel funziona tramite guard, che verificano chi è l'utente, e provider, che caricano gli utenti dal database. Starter kit come Laravel Breeze aggiungono pagine pronte per accesso, registrazione e reimpostazione della password. Le password vengono trasformate in hash con bcrypt o Argon2, quindi non sono mai salvate in chiaro.

Qual è la differenza tra Laravel Sanctum e Laravel Passport?

Laravel Sanctum offre un accesso semplice con token e cookie per single page application, app mobili e API di base, mentre Laravel Passport è un server OAuth2 completo. La maggior parte dei progetti ha bisogno solo di Sanctum perché è più leggero e facile da configurare. Passport è adatto ai casi in cui applicazioni esterne devono accedere per conto dei tuoi utenti.

Cosa sono i middleware in Laravel?

I middleware in Laravel sono livelli che controllano o modificano una richiesta prima che raggiunga il tuo codice, o una risposta prima che esca. I middleware più comuni gestiscono la verifica dell'accesso, la protezione CSRF, il limite di richieste e le impostazioni della lingua. Si possono collegare a singole rotte, a gruppi di rotte o all'intera applicazione.

Come funzionano le code in Laravel?

Le code in Laravel spostano le operazioni lente, come l'invio di email o la creazione di report, fuori dalla richiesta web e dentro job in background. Un job viene inserito in un driver di coda come Redis o il database, e un worker avviato con php artisan queue:work lo esegue. L'utente riceve una risposta rapida mentre il lavoro pesante si completa in background.

Quando usare le code in un'applicazione Laravel?

Le code in un'applicazione Laravel vanno usate ogni volta che un'operazione richiede più di un istante o dialoga con un servizio esterno, come email, elaborazione di file o webhook dei pagamenti. Le code mantengono veloci le pagine e permettono ai job falliti di riprovare da soli. Laravel Horizon offre una dashboard per controllare le code Redis.

Come si pianificano le attività in Laravel?

Le attività in Laravel si pianificano definendole nello scheduler con metodi come daily o everyFiveMinutes, e poi eseguendo php artisan schedule:run ogni minuto da una sola voce cron sul server. Lo scheduler decide quindi quali attività sono in scadenza. In questo modo tutti i lavori programmati restano nel codice invece che in tante righe cron separate.

Come si validano i dati dei moduli in Laravel?

I dati dei moduli in Laravel si validano con il metodo validate della richiesta oppure con una classe Form Request che contiene le regole. Regole come required, email, max e unique controllano ogni campo prima che il codice lo usi. Se la validazione fallisce, Laravel rimanda l'utente indietro con i messaggi di errore e i dati inseriti.

Come protegge Laravel dagli attacchi web più comuni?

Laravel protegge dagli attacchi web più comuni con token CSRF nei moduli, escape dell'output in Blade, binding dei parametri nelle query al database e password protette da hash. Queste impostazioni predefinite bloccano cross-site request forgery, cross-site scripting e SQL injection nell'uso normale. Gli sviluppatori devono comunque validare l'input, controllare i permessi e tenere aggiornato il framework.

Come si pubblica un'applicazione Laravel su un server?

Un'applicazione Laravel si pubblica scaricando il codice sul server, eseguendo composer install senza i pacchetti di sviluppo, configurando il file .env ed eseguendo le migrazioni. Poi si mettono in cache configurazione, rotte e view e si punta il web server sulla cartella public. Molti team automatizzano questi passaggi da Git così ogni rilascio è identico.

Di quale server ha bisogno un'applicazione Laravel?

Un'applicazione Laravel ha bisogno di un server con PHP, un web server come Nginx o Apache, un database come MySQL o PostgreSQL e Composer. Spesso si aggiunge Redis per cache e code, e un gestore di processi mantiene attivi i worker delle code. Hostrena, il marchio di hosting di Linkysoft, offre hosting per applicazioni web Laravel pubblicate direttamente da Git.

Come si rende più veloce un'applicazione Laravel?

Un'applicazione Laravel diventa più veloce mettendo in cache configurazione, rotte e view, usando l'eager loading delle relazioni e aggiungendo indici alle colonne del database su cui si cerca. Aiutano anche lo spostamento del lavoro lento nelle code e la cache dei risultati delle query pesanti in Redis. Attivare PHP OPcache sul server dà un grande guadagno con poco sforzo.

Come si testa un'applicazione Laravel?

Un'applicazione Laravel si testa con PHPUnit o Pest, già configurati in ogni nuovo progetto. I feature test inviano richieste simulate alle rotte e controllano risposta e database, mentre gli unit test verificano singole classi. Il comando php artisan test esegue l'intera suite.

Laravel regge applicazioni grandi con molti utenti?

Sì, Laravel regge applicazioni grandi con molti utenti quando gira su buoni server con cache, code, indici sul database e più server applicativi dietro un bilanciatore di carico. Il framework in sé è raramente il limite, di solito lo sono le query lente e la cache mancante. Per questo Linkysoft sviluppa applicazioni web su misura con PHP, Laravel, MySQL e Redis.

Ogni quanto conviene aggiornare la versione di Laravel?

Conviene aggiornare la versione di Laravel almeno prima che quella attuale smetta di ricevere correzioni di sicurezza. Laravel pubblica una versione principale circa una volta l'anno, e ognuna ha la sua guida all'aggiornamento. Piccoli aggiornamenti regolari sono molto più semplici che saltare più versioni in una volta.