> ## 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 Juni 2026

> Updates im Laravel-Ökosystem im Juni 2026. Bus::bulk(), Unterstützung für Postgres Transaction Pooler, MCP-Client/-Server, Kommando artisan dev, Route-Metadaten u. v. m.

Im Juni 2026 unterstützt Laravel Cloud Symfony-Anwendungen; in Forge kamen ein Managed Valkey Cache und Object Storage hinzu. Das Framework erhielt umfangreiche Updates wie Bulk-Job-Dispatch, Postgres-Pooler-Unterstützung sowie MCP-Client/-Server.

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

***

## Laravel Framework

### Bus::bulk() – Bulk-Dispatch für Jobs

Große Mengen an Jobs lassen sich nun in einem einzigen Datenbank-INSERT registrieren. Da pro Queue-Verbindung ein Bulk-INSERT erfolgt, entfallen die Kosten des Einzel-INSERTs.

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

Bus::bulk([
    new ProcessOrder($order1),
    new ProcessOrder($order2),
    new ProcessOrder($order3),
    // effizient auch bei Tausenden Einträgen
]);
```

### Unterstützung für Postgres Transaction Pooler

Postgres-Connection-Pooler im Transaction-Modus wie PgBouncer, AWS RDS Proxy und Neon werden nun auf Framework-Ebene unterstützt.

```php theme={null}
// config/database.php
'pgsql' => [
    'driver' => 'pgsql',
    'pooled' => true,  // eine Verbindung über den Pooler deklarieren
    // ...
],
```

<Info>
  Wenn Schema-Operationen oder DDL-Statements eine direkte Verbindung erfordern, umgehen Sie den Pooler, indem Sie `::direct` an den Verbindungsnamen anhängen.
  `DB::connection('pgsql::direct')->statement('CREATE INDEX ...')`
</Info>

Das Framework übernimmt automatisch Emulated Prepares, Boolean-Bindings und alle sonstigen Vorgänge, die der Pooler erfordert.

### Tool-Unterstützung für MCP-Client/-Server

Laravel-KI-Agenten können jetzt Tools von Remote-MCP-Servern (per HTTP) und lokalen MCP-Server-Klassen nutzen. Schema-Umwandlung, Wrapping und Aufruf werden vollautomatisch verarbeitet.

```php theme={null}
class MyAgent extends Agent
{
    public function tools(): array
    {
        return [
            // Tools eines Remote-MCP-Servers nutzen
            McpClient::tools('https://mcp.example.com'),
            // Tools eines lokalen MCP-Servers nutzen
            McpServer::tools(MyMcpServer::class),
        ];
    }
}
```

### Kommando artisan dev

Mit dem neuen `artisan dev` lassen sich alle Entwicklungsprozesse in einem einzigen Kommando starten. Server, Queue Worker, Log-Tailing und Vite laufen gleichzeitig mit farblich unterscheidbarer Ausgabe.

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

```php theme={null}
// In einem Service Provider zusätzliche Kommandos registrieren
use Illuminate\Foundation\Console\DevCommands;

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

<Tip>
  Node.js-Paketmanager (npm, yarn, pnpm, bun) werden automatisch erkannt. Es ist die offizielle Artisan-Konvention, die das bisherige `composer dev`-Skript ersetzt.
</Tip>

### Unterstützung für Route-Metadaten

Die Methode `->metadata()` wurde ergänzt, mit der sich beliebige Metadaten an einer Route hinterlegen lassen. Sie ist vollständig kompatibel zum Route-Cache; an einer Gruppe gesetzte Metadaten werden in die untergeordneten Routen eingefügt.

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

// Zugriff aus Controllern oder Middleware
$request->route()->getMetadata('head.title');          // 'Users'
$request->route()->getMetadata('head.author', 'Taylor'); // 'Taylor'
```

### Exception-Handler ohne Retry

Für Exceptions, deren erneuter Versuch sinnlos ist (etwa fehlerhafte Eingaben oder dauerhafte externe Ausfälle), lässt sich das Retry unterdrücken.

```php theme={null}
// Direkt in der Exception-Klasse definieren
class InvalidInputException extends RuntimeException
{
    public function retry(): bool
    {
        return false;
    }
}

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

### Flag --without-migration-data für schema:dump

Bei `schema:dump` lässt sich ein reiner Strukturdump ohne die Zeilen der Migrationstabelle erzeugen.

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

### Zeitzonen-Korrektur für between()/unlessBetween()

Unabhängig davon, ob `timezone()` vor oder nach `between()` bzw. `unlessBetween()` aufgerufen wird, arbeitet der Scheduler nun in der richtigen Zeitzone.

```php theme={null}
// Beide Varianten verhalten sich gleich (zuvor wurde bei vorangestelltem between UTC verwendet)
$schedule->command('foo')->timezone('Europe/Rome')->between('10:00', '12:00');
$schedule->command('foo')->between('10:00', '12:00')->timezone('Europe/Rome');
```

### Weitere Framework-Änderungen

* **Trait-Unterstützung für `Bus::bulk()`**: Queue-Attribute lassen sich in Traits definieren
* **MariaDB-Vektorindizes**: Unterstützung von Vektorindizes in MariaDB
* **Helper `attachFromStorage()`**: Anhänge aus dem Storage direkt an eine `MailMessage` einer Notification hängen
* **`Cache::rememberWithState()`**: zustandsbehafteter Cache
* **Wartungsmodus-Treiber für parallele Tests**: mit dem `array`-Treiber besitzt jeder Prozess einen eigenen Wartungsstatus
* **`whenFilledEnum()`**: bedingte Verarbeitung von Feldern mit Enums
* **`anyOf`-Unterstützung für JSON Schema**: `anyOf` aus JSON Schema in der Validierung nutzbar

***

## Inertia

* **`Client\Request::uri()`**: URI eines Client-Requests abrufen
* **`target`-Attribut für Anchor**: `target="_blank"` u. Ä. an der `<Link>`-Komponente nutzbar
* **`async`-Option des Formulars**: die Form-Komponente unterstützt asynchronen Versand
* **Seiteninformationen in `titleCallback`**: dem Title-Callback werden die Page-Daten übergeben

***

## Laravel Cloud und Laravel Forge

| Produkt           | Wichtige Updates                                                                                                                                                                                    |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Laravel Cloud** | Vollständige Unterstützung für Symfony-Anwendungen (Symfony 7.4 LTS/8.x, PHP 8.2–8.5), Deployment und Payment über Stripe Projects, Slack/E-Mail-Benachrichtigungen pro Teammitglied konfigurierbar |
| **Laravel Forge** | Managed Valkey Cache (Erstellung und Verwaltung über das Dashboard), Managed Object Storage, Redesign der Benachrichtigungs-E-Mails                                                                 |


## Related topics

- [Laravel-Updates März 2026](/de/blog/changelog/202603.md)
- [Laravel-Updates Mai 2026](/de/blog/changelog/202605.md)
- [Laravel-Updates April 2026](/de/blog/changelog/202604.md)
- [laravel/symfony-on-cloud – Symfony-Apps auf Laravel Cloud betreiben](/de/blog/symfony-on-cloud-introduction.md)
- [Laravel LSP – IDE-Erweiterung per Language Server Protocol](/de/blog/laravel-lsp-introduction.md)
