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

# Laravel-updates van juni 2026

> Updates in het Laravel-ecosysteem van juni 2026. Bus::bulk(), ondersteuning voor Postgres-transactiepoolers, MCP-client/server, het artisan dev-commando, routemetadata en meer.

In juni 2026 kreeg Laravel Cloud ondersteuning voor Symfony-apps en kwamen er managed Valkey-cache en objectstorage bij op Forge. Het framework ontving een flinke reeks updates, waaronder bulk-jobdispatching, ondersteuning voor Postgres-poolers en MCP-client/server.

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

***

## Laravel Framework

### Bus::bulk() — bulk-jobdispatching

Je kunt nu grote aantallen jobs registreren met één database-INSERT. Per queue en connectie wordt een bulk-INSERT uitgevoerd, waardoor de kosten van het één voor één inserten vervallen.

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

Bus::bulk([
    new ProcessOrder($order1),
    new ProcessOrder($order2),
    new ProcessOrder($order3),
    // Efficiënt, ook bij duizenden jobs
]);
```

### Ondersteuning voor Postgres-transactiepoolers

Postgres-verbindingspoolers in transactiemodus, zoals PgBouncer, AWS RDS Proxy en Neon, worden nu op frameworkniveau ondersteund.

```php theme={null}
// config/database.php
'pgsql' => [
    'driver' => 'pgsql',
    'pooled' => true,  // declareert een verbinding via de pooler
    // ...
],
```

<Info>
  Heb je een directe verbinding nodig, bijvoorbeeld voor schemabewerkingen of DDL-statements, voeg dan `::direct` toe aan de connectienaam om de pooler te omzeilen.
  `DB::connection('pgsql::direct')->statement('CREATE INDEX ...')`
</Info>

Het framework verzorgt automatisch emulated prepares, boolean binding en alles wat de pooler verder nodig heeft.

### Ondersteuning voor MCP-client- en servertools

Laravel AI-agents kunnen nu tools gebruiken van remote MCP-servers (via HTTP) én van lokale MCP-serverklassen. Schemaconversie, wrapping en aanroepen worden allemaal automatisch afgehandeld.

```php theme={null}
class MyAgent extends Agent
{
    public function tools(): array
    {
        return [
            // Tools van een remote MCP-server gebruiken
            McpClient::tools('https://mcp.example.com'),
            // Tools van een lokale MCP-server gebruiken
            McpServer::tools(MyMcpServer::class),
        ];
    }
}
```

### Het artisan dev-commando

Er is een `artisan dev` toegevoegd waarmee je alle ontwikkelprocessen met één commando start. De server, queue-worker, log-tailing en Vite draaien tegelijk, elk met kleurgecodeerde output.

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

```php theme={null}
// Extra commando's registreren in een serviceprovider
use Illuminate\Foundation\Console\DevCommands;

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

<Tip>
  Het detecteert automatisch je Node.js-pakketbeheerder (npm, yarn, pnpm, bun). Dit is de officiële Artisan-conventie die het traditionele `composer dev`-script vervangt.
</Tip>

### Ondersteuning voor routemetadata

Er is een `->metadata()`-methode toegevoegd waarmee je willekeurige metadata aan routes kunt koppelen. Volledig compatibel met de routecache, en metadata die je op een groep instelt wordt gemerged in de child-routes.

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

// Toegang vanuit een controller of middleware
$request->route()->getMetadata('head.title');          // 'Users'
$request->route()->getMetadata('head.author', 'Taylor'); // 'Taylor'
```

### Exceptionhandlers zonder retry

Voor exceptions waarbij opnieuw proberen zinloos is (ongeldige invoer, permanente externe storingen, enz.) kun je retries nu onderdrukken.

```php theme={null}
// Rechtstreeks definiëren in de exceptionklasse
class InvalidInputException extends RuntimeException
{
    public function retry(): bool
    {
        return false;
    }
}

// Kan ook in bootstrap/app.php worden ingesteld
->withExceptions(function (Exceptions $exceptions) {
    $exceptions->dontRetry(InvalidInputException::class);
})
```

### De vlag --without-migration-data van schema:dump

Met `schema:dump` kun je nu een pure structuurdump genereren zonder de rijen van de migrationtabel.

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

### Tijdzonefix voor between()/unlessBetween()

Schedules werken nu met de juiste tijdzone, ongeacht of je `timezone()` vóór of na `between()` of `unlessBetween()` aanroept.

```php theme={null}
// Beide gedragen zich hetzelfde (voorheen werd UTC gebruikt als je between eerst schreef)
$schedule->command('foo')->timezone('Europe/Rome')->between('10:00', '12:00');
$schedule->command('foo')->between('10:00', '12:00')->timezone('Europe/Rome');
```

### Overige frameworkwijzigingen

* **Trait-ondersteuning voor `Bus::bulk()`**: queue-attributes kunnen in traits worden gedefinieerd
* **MariaDB-vectorindexen**: ondersteuning voor vectorindexen in MariaDB
* **De helper `attachFromStorage()`**: bijlagen uit storage toevoegen aan de `MailMessage` van een notificatie
* **`Cache::rememberWithState()`**: cache-ondersteuning met state
* **Maintenancemode-driver voor parallel testen**: met de `array`-driver heeft elk proces zijn eigen onderhoudsstatus
* **`whenFilledEnum()`**: conditionele verwerking van velden met enums
* **anyOf-ondersteuning in JSON Schema**: `anyOf` van JSON Schema is bruikbaar in validatie

***

## Inertia

* **`Client\Request::uri()`**: de URI van het clientrequest ophalen
* **Ondersteuning voor het `target`-attribuut op ankers**: `target="_blank"` e.d. bruikbaar in het `<Link>`-component
* **De `async`-optie voor formulieren**: ondersteuning voor asynchroon verzenden in het formuliercomponent
* **Pagina-informatie in `titleCallback`**: de titelcallback ontvangt nu de paginadata

***

## Laravel Cloud en Laravel Forge

| Product           | Belangrijkste updates                                                                                                                                                          |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Laravel Cloud** | Volledige ondersteuning voor Symfony-apps (Symfony 7.4 LTS en 8.x, PHP 8.2–8.5), deployen en betalen vanuit Stripe Projects, Slack-/e-mailnotificatie-instellingen per teamlid |
| **Laravel Forge** | Managed Valkey-cache (aanmaken en beheren vanuit het dashboard), managed objectstorage, herontwerp van notificatiemails                                                        |


## Related topics

- [Laravel-updates van juli 2026](/nl/blog/changelog/202607.md)
- [Laravel-updates van augustus 2026](/nl/blog/changelog/202608.md)
- [Laravel-updates van maart 2026](/nl/blog/changelog/202603.md)
- [Laravel-updates van april 2026](/nl/blog/changelog/202604.md)
- [Laravel-updates van mei 2026](/nl/blog/changelog/202605.md)
