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

# 2026 年 4 月 Laravel 更新

> 2026 年 4 月的 Laravel 生态更新。Passkeys(无密码认证)、Debounceable Jobs、MCP UI App、Redis Cluster 支持等。

2026 年 4 月,全栈的无密码认证成为 Laravel 的标配功能。此外还新增了用于控制作业突发派发的 Debounceable 作业、MCP UI 应用支持等大量实用功能。

参考出处:[Laravel April Product Updates](https://laravel.com/blog/laravel-april-product-updates)

***

## Laravel Framework

### Debounceable Queued Jobs

针对突发型工作负载的干净解决方案。使用 `#[DebounceFor]` 属性,可以把指定时间内的多次派发合并为一次,只执行最后一次派发。它是 `ShouldBeUnique` 的反向思路,专门优化去抖窗口内的连续更新。

```php theme={null}
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\Attributes\DebounceFor;

#[DebounceFor(30)]
class RebuildSearchIndex implements ShouldQueue
{
    // 即使用户在 30 秒内更新了 10 次文档,
    // 索引重建也只会执行 1 次
}

// 调用侧也能进行去抖(无需改动类)
RebuildSearchIndex::dispatch()->debounceFor(seconds: 30);
```

<Info>
  被去抖的作业会触发 `JobDebounced` 事件,方便你观察被跳过的作业。
</Info>

### 健康路由支持 JSON 响应

在纯 API 应用中,你不再需要从 `/up` 抓取 HTML。内置健康路由会针对 JSON 请求返回 JSON。

```json theme={null}
{ "status": "Application is up" }
```

负载均衡器、健康检查监控、编排器的联动都会变得更简单。无需修改任何配置。

### JsonFormatter

通过 `JsonFormatter`,自定义异常的 `context()` 数据可以确实地被记录到结构化日志中,也会包含异常链中前一个异常的上下文。

```php theme={null}
// config/logging.php
'formatter' => Illuminate\Log\Formatters\JsonFormatter::class,
```

### prefersJsonResponses()

在 API 应用中只需要在 `bootstrap/app.php` 中加一行,就会把宽松的 `Accept` 头当作 JSON 处理,认证重定向、验证错误、异常页面都会被恰当地序列化为客户端可用格式。

```php theme={null}
return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(...)
    ->prefersJsonResponses()
    ->create();
```

### Cloudflare Email Service 支持

Cloudflare 的 Email Service 正式作为 Laravel Mailer 得到支持。

```php theme={null}
// config/services.php
'cloudflare' => [
    'account_id' => env('CLOUDFLARE_ACCOUNT_ID'),
    'token' => env('CLOUDFLARE_TOKEN'),
],
```

### Redis Cluster 完整支持

在 AWS ElastiCache Serverless 等 Redis Cluster 环境下的 CROSSSLOT 错误已被解决。Laravel 的 Queue、ConcurrencyLimiter 一旦检测到 Cluster 连接,就会自动用哈希标签包裹队列名。

```
queues:{default}          # "default" 槽
queues:{default}:delayed  # 相同槽
queues:{default}:reserved # 相同槽
```

### 队列作业检查方法

新增 3 个方法,无需直接查看数据库就能确认作业内容。

```php theme={null}
Queue::pendingJobs();   // 等待中的作业
Queue::delayedJobs();   // 延迟作业
Queue::reservedJobs();  // 处理中的作业

// 访问 InspectedJob 实例
Queue::reservedJobs('high-priority')->first()->name;
// => 'App\Jobs\SendEmail'
```

### Form Request Strict Mode

可以控制未声明的字段不通过校验。在 `rules()` 中未声明的入参字段将导致校验失败。

```php theme={null}
// AppServiceProvider
public function boot(): void
{
    FormRequest::failOnUnknownFields(! app()->isProduction());
}
```

***

## Passkeys(无密码认证)

无密码认证已实现从前到后的官方全栈支持。

* **`laravel/passkeys`(服务端)**:提供迁移、登录 / 确认 / 凭据管理路由、WebAuthn 操作和事件
* **`@laravel/passkeys`(客户端)**:通过 React、Vue、Svelte 的辅助函数处理浏览器 WebAuthn 流程
* **Fortify 集成**:只要用 `Features::passkeys()` 启用,Fortify 应用即可使用相同的端点和契约

```php theme={null}
// config/fortify.php
'features' => [
    Features::passkeys(),
],
```

***

## MCP UI App 支持

MCP 工具不仅能返回纯文本,现在也能在 iframe 中渲染完整的沙箱化 HTML 应用。

```bash theme={null}
php artisan make:mcp-app-resource DashboardApp
```

```php theme={null}
class DashboardApp extends AppResource
{
    #[RendersApp]
    public function handle(Request $request): Response
    {
        return Response::view('mcp.dashboard-app', [
            'title' => 'Dashboard',
        ]);
    }
}
```

***

## Inertia / 生态

* **`useHttp` hook**:新增 `onHttpException`、`onNetworkError` 回调
* **Laravel Echo Svelte 5 适配器**:通过 `useEcho` rune 让 Svelte 也能使用实时功能
* **Dusk**:`clickOnceEnabled()`、`clickOnceVisible()` 防止不稳定的测试
* **Horizon**:完整支持 Redis Cluster(适配 AWS ElastiCache Serverless)
* **VS Code 扩展**:支持 Laravel 13 新属性的自动补全、悬停信息与跳转

***

## Laravel Cloud / Laravel Forge

| 产品                | 主要更新                                         |
| ----------------- | -------------------------------------------- |
| **Laravel Cloud** | 全响应式移动端 UI、边缘网络增强(显示 Top IP/路径,防火墙 / 缓存规则转换) |
| **Laravel Forge** | PHP 8.5 支持、多 SSL 服务器支持、证书续期告警                |


## Related topics

- [2026 年 3 月 Laravel 更新](/zh/blog/changelog/202603.md)
- [2026 年 5 月 Laravel 更新](/zh/blog/changelog/202605.md)
- [2026 年 6 月 Laravel 更新](/zh/blog/changelog/202606.md)
- [Laravel 新代码分析生态 — surveyor / ranger / roster](/zh/blog/laravel-ecosystem-analysis.md)
- [Laravel 13 新功能汇总](/zh/blog/laravel-13-new-features.md)
