---
title: "Aggiornamento di Laravel dalla versione 10 alla 13"
id: "497"
type: "post"
slug: "aggiornamento-di-laravel-dalla-10-alla-13"
published_at: "2026-07-22T10:03:27+00:00"
modified_at: "2026-07-22T13:39:16+00:00"
url: "https://pierluigipapeschi.com/aggiornamento-di-laravel-dalla-10-alla-13/"
markdown_url: "https://pierluigipapeschi.com/aggiornamento-di-laravel-dalla-10-alla-13.md"
excerpt: "Fare un aggiornamento di Laravel, ovvero passare da una major release ad una superiore, non è un passaggio semplice e indolore. In ogni major release (il primo numero di una versione di un software) succede sicuramente che alcuni componenti vengono..."
taxonomy_category:
  - "Laravel"
---

Fare un aggiornamento di Laravel, ovvero passare da una major release ad una superiore, non è un passaggio semplice e indolore. In ogni major release (il primo numero di una versione di un software) succede sicuramente che alcuni componenti vengono abbandonati per essere adottati altri, nuovi e migliori, ma diversi.

Dovendo fare questa operazione su un sito costruito sulla versione 10 e portarlo all’ultima attuale versione di Laravel, la 13, mostro i vari passaggi e le varie difficoltà incontrate.

Come riferimento utilizza sempre la [documentazione ufficiale](https://laravel.com/docs/master/upgrade)
.

> Il consiglio furbo… è quello di replicare il sito in un sotto dominio di test e solo ad upgrade ultimato trasferirlo in produzione.

## Aggiornamento di Laravel alla versione 13, i passi

La prima cosa che verrebbe da fare è aggiornare dalla 10 alla 13 direttamente, ma non è sicuramente una buona idea perché avremo molte modifiche sia strutturali (scelte di architettura e comportamento) che di contesto (cambio di dipendenza del PHP, ecc.).

Perciò andremo a fare ogni passaggio tra una major release e la successiva cambiando tutto il necessario e non proseguendo finché non abbiamo stabilizzato il sistema. Questo per evitare di perdere i vari riferimenti tra quali possono essere le cause di eventuali problemi.

Prima di “operare”, puliamo la cache e facciamo un’indagine sulla situazione attuale

```
php artisan optimize:clear
php artisan about
php artisan migrate:status
php artisan test
```

Perfetto, la nuova installazione di test deve funzionare, indaghiamo ancora altri aspetti, prendi nota delle varie versioni e dei pacchetti utilizzati

```
php -v
composer.json
composer.lock
package.json
phpunit.xml
```

### Adattamento di Laravel 10, un caso concreto

Bene, nel mio caso vedo che il progetto attuale utilizza un pacchetto chiamato “**laravelcollective/html**” che è stato dichiarato abbandonato proprio dalla versione 10, quindi nella 11 lo voglio sostituire con qualcosa di diverso. Ho scelto “**spatie/laravel-html**” (basta fare una ricerca in internet per trovare i sostituti).

Invece di sostituirlo lo aggiungo e lascio il vecchio pacchetto finché non ho fatto le modifiche ai file coinvolti e vedo che funziona tutto. Solo dopo questa fase, tolgo il pacchetto e riverifico che non ci siano altri problemi introdotti o tralasciati.

Perfetto, tutto ok… possiamo impostare la versione di Laravel 11 nel file **composer.json** e la versione di PHP 8.2 come dipendenza dato che la versione 11 necessita proprio almeno del PHP 8.2

Salva le modifiche al file composer.json e lancia il comando che fa l’upgrade

```
composer update -W
```

l’opzione W aggiorna anche tutte le dipendenze, poi verifica che funzioni ancora sia navigando sul sito sia con il comando

```
php artisan about
php artisan optimize:clear
php artisan migrate:status
php artisan test
```

Bene, diamo per scontato che tutto funzioni correttamente, quindi possiamo procedere alla versione successiva.

## Passiamo dalla 11 alla 12

Stesso discorso per il passo precedente: verifica che i pacchetti utilizzati siano compatibili con la versione 12 e facciamo le modifiche al file composer.json, quella che a noi interessa adesso ai fini di spiegazione di massima è questa

```
VECCHIA "laravel/framework": "^11.0",
NUOVA   "laravel/framework": "^12.0",
```

Ovviamente la VECCHIA riga va cancellata. Salviamo e lanciamo `composer update -W`

Infine i soliti comandi di controllo

```
php artisan about
php artisan optimize:clear
php artisan migrate:status
php artisan test
```

Ancora una volta tutto ok! Procediamo spediti 😉

## Versione 12 -> 13, l’ultima

E siamo giunti all’ultima versione disponibile ad oggi. Verifichiamo le richieste di Laravel e la compatibilità dei pacchetti che adopero. Trovo che ho diverse modifiche da apportare al file composer.json, quindi le faccio:

```
"require": {
    "php": "^8.3",
    "algolia/algoliasearch-client-php": "^3.4",
    "algolia/scout-extended": "^3.0",
    "google/recaptcha": "1.3.*",
    "guzzlehttp/guzzle": "^7.2",
    "laravel/framework": "^13.0",
    "laravel/sanctum": "^4.0",
    "laravel/scout": "^10.6",
    "laravel/tinker": "^3.0",
    "spatie/laravel-html": "^3.13"
},
"require-dev": {
    "fakerphp/faker": "^1.9.1",
    "laravel/pint": "^1.0",
    "laravel/sail": "^1.18",
    "laravel/ui": "^4.2",
    "mockery/mockery": "^1.4.4",
    "nunomaduro/collision": "^8.1",
    "phpunit/phpunit": "^12.0",
    "spatie/laravel-ignition": "^2.0"
}
```

Ti informo che è stata cambiata la versione di PHP, di Laravel, di tinker e phpunit rispetto alla versione 12, ma è pacifico.

Un consiglio: lanciando questi comandi dal terminale, verifica che il php usato sia compatibile con quella di Laravel 13, ovvero la 8.3, con il comando `php -v`se non lo è cambialo, vedi [questo articolo](https://pierluigipapeschi.com/shorts/cambiare-versione-di-php-alla-console/)
.

Bene, procediamo come al solito, comando di update e test post aggiornamento. Per tutto bene! Spero anche te 🙂
