> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Aggiornamenti Laravel di giugno 2026

> Aggiornamenti dell'ecosistema Laravel di giugno 2026. Bus::bulk(), supporto al transaction pooler di Postgres, client/server MCP, comando artisan dev, metadati di rotta e altro.

A giugno 2026 Laravel Cloud ha iniziato a supportare le app Symfony e a Forge sono stati aggiunti cache Valkey gestita e object storage. Al framework sono arrivati aggiornamenti sostanziosi, tra cui bulk dispatch di job, supporto al pooler Postgres e client/server MCP.

Fonte: [Laravel June Product Updates](https://laravel.com/blog/laravel-june-product-updates)

***

## Laravel Framework

### Bus::bulk() — dispatch di job in bulk

Ora puoi registrare grandi quantità di job con una sola INSERT nel database. La INSERT in bulk viene eseguita per ciascuna coda/connessione, eliminando il costo di INSERT una a una.

```php theme={null}
use Illuminate\Support\Facades\Bus;

Bus::bulk([
    new ProcessOrder($order1),
    new ProcessOrder($order2),
    new ProcessOrder($order3),
    // Efficiente anche con migliaia di elementi
]);
```

### Supporto al transaction pooler di Postgres

Il supporto ai connection pool Postgres in modalità transaction, come PgBouncer, AWS RDS Proxy e Neon, è stato aggiunto a livello di framework.

```php theme={null}
// config/database.php
'pgsql' => [
    'driver' => 'pgsql',
    'pooled' => true,  // Dichiara la connessione via pooler
    // ...
],
```

<Info>
  Se hai bisogno di una connessione diretta, per esempio per operazioni sullo schema o istruzioni DDL, aggiungi `::direct` al nome della connessione per bypassare il pooler.
  `DB::connection('pgsql::direct')->statement('CREATE INDEX ...')`
</Info>

Il framework esegue automaticamente emulated prepares, il binding dei boolean e tutte le altre operazioni richieste dal pooler.

### Supporto ai tool client e server MCP

Gli agenti Laravel AI possono ora utilizzare tool di server MCP remoti (via HTTP) e di classi server MCP locali. Trasformazioni di schema, wrapping e chiamate sono gestite in modo automatico.

```php theme={null}
class MyAgent extends Agent
{
    public function tools(): array
    {
        return [
            // Usa i tool di un server MCP remoto
            McpClient::tools('https://mcp.example.com'),
            // Usa i tool di un server MCP locale
            McpServer::tools(MyMcpServer::class),
        ];
    }
}
```

### Comando artisan dev

È stato aggiunto `artisan dev` che avvia con un solo comando tutti i processi di sviluppo. Server, queue worker, log tailing e Vite girano contemporaneamente, ciascuno con output color-coded.

```bash theme={null}
php artisan dev
```

```php theme={null}
// Registra comandi aggiuntivi in un service provider
use Illuminate\Foundation\Console\DevCommands;

DevCommands::artisan('reverb:start', 'reverb')->orange();
DevCommands::register('stripe listen --forward-to ' . config('app.url'))->green();
```

<Tip>
  Rileva automaticamente il package manager di Node.js (npm, yarn, pnpm, bun). È la convenzione ufficiale di Artisan che sostituisce il tradizionale script `composer dev`.
</Tip>

### Supporto ai metadati di rotta

È stato aggiunto il metodo `->metadata()` che permette di aggiungere metadati arbitrari a una rotta. È pienamente compatibile con la cache delle rotte e i metadati impostati su un gruppo vengono mergiati alle rotte figlie.

```php theme={null}
Route::metadata(['head' => ['robots' => ['noindex'], 'author' => 'Taylor']])
    ->group(function () {
        Route::get('/users', [UserController::class, 'index'])
            ->metadata(['head' => ['title' => 'Users']]);
    });

// Accesso da controller e middleware
$request->route()->getMetadata('head.title');          // 'Users'
$request->route()->getMetadata('head.author', 'Taylor'); // 'Taylor'
```

### Handler di eccezioni non ritentabili

Per le eccezioni che non ha senso ritentare (input non validi, guasti esterni permanenti, ecc.), puoi sopprimere il retry.

```php theme={null}
// Definisci direttamente sulla classe di eccezione
class InvalidInputException extends RuntimeException
{
    public function retry(): bool
    {
        return false;
    }
}

// Puoi configurarlo anche in bootstrap/app.php
->withExceptions(function (Exceptions $exceptions) {
    $exceptions->dontRetry(InvalidInputException::class);
})
```

### Flag --without-migration-data per schema:dump

Ora `schema:dump` può generare un dump strutturale puro che omette le righe della tabella delle migration.

```bash theme={null}
php artisan schema:dump --without-migration-data
```

### Correzione dei fusi orari per between()/unlessBetween()

`between()` e `unlessBetween()` ora funzionano nella schedule con il fuso orario corretto indipendentemente dall'ordine in cui `timezone()` viene chiamato.

```php theme={null}
// Entrambe si comportano allo stesso modo (prima, se scrivevi between prima, veniva usato UTC)
$schedule->command('foo')->timezone('Europe/Rome')->between('10:00', '12:00');
$schedule->command('foo')->between('10:00', '12:00')->timezone('Europe/Rome');
```

### Altre modifiche al framework

* **Supporto ai trait di `Bus::bulk()`**: puoi definire attributi di coda nei trait
* **Indici vettoriali per MariaDB**: supporto agli indici vettoriali in MariaDB
* **Helper `attachFromStorage()`**: aggiunge allegati dallo storage al `MailMessage` delle notifiche
* **`Cache::rememberWithState()`**: supporto a una cache con stato
* **Driver di maintenance mode per test paralleli**: con il driver `array` ogni processo può avere il proprio stato di manutenzione
* **`whenFilledEnum()`**: elaborazione condizionale di campi usando Enum
* **Supporto anyOf di JSON Schema**: si può usare `anyOf` di JSON Schema in validazione

***

## Inertia

* **`Client\Request::uri()`**: ottiene l'URI della richiesta client
* **Supporto all'attributo `target` dell'anchor**: nel componente `<Link>` è ora usabile `target="_blank"` e simili
* **Opzione `async` del form**: il componente form supporta l'invio asincrono
* **Informazioni sulla pagina in `titleCallback`**: alla callback del titolo vengono passati i dati della pagina

***

## Laravel Cloud e Laravel Forge

| Prodotto          | Aggiornamenti principali                                                                                                                                                                    |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Laravel Cloud** | Supporto completo alle app Symfony (Symfony 7.4 LTS e 8.x, PHP da 8.2 a 8.5), deploy e pagamento da Stripe Projects, configurazione delle notifiche Slack/email per singolo membro del team |
| **Laravel Forge** | Cache Valkey gestita (creazione e gestione da dashboard), object storage gestito, redesign delle email di notifica                                                                          |


## Related topics

- [Aggiornamenti Laravel di marzo 2026](/it/blog/changelog/202603.md)
- [Aggiornamenti Laravel di maggio 2026](/it/blog/changelog/202605.md)
- [Aggiornamenti Laravel di aprile 2026](/it/blog/changelog/202604.md)
- [laravel/symfony-on-cloud — eseguire app Symfony su Laravel Cloud](/it/blog/symfony-on-cloud-introduction.md)
- [Laravel LSP — estensione delle funzionalità IDE tramite Language Server Protocol](/it/blog/laravel-lsp-introduction.md)
