找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2236

积分

0

好友

300

主题
发表于 2 小时前 | 查看: 2| 回复: 0

Laravel 13发布封面图

Laravel官方已于2026年3月17日正式发布了v13.0.0版本。这是继Laravel 12之后,又一次遵循“持续小步快跑”理念的重大更新。官方将其核心亮点定位为 AI-native workflows更强的默认配置 以及 更直观的开发 API

值得注意的是,本次版本的破坏性变更极少。官方强调,Laravel 12+ 用户甚至可以直接利用 Laravel Boost/upgrade 命令,让AI代理帮你完成自动化升级。根据社区反馈,整个升级过程最快仅需5分钟。

尽管升级平滑,但Laravel 13依然带来了大量值得深入研究的亮点。下面,我们就来逐一解析本次更新的核心内容及其背后的设计理念。

核心亮点一览

1. Laravel AI SDK(正式首发)

这是官方推出的第一方AI工具包,旨在统一支持文本生成、Tool-calling Agent、embeddings(嵌入)、音频合成、图像生成、向量存储等多种人工智能能力。

现在,开发者可以用最“Laravel”的方式编写AI功能。它一键统一了OpenAI、Claude、Gemini等主流模型的调用接口,让你无需再纠结各家SDK的细微差异。

代码示例清晰地展示了其优雅的语法:

$response = SalesCoach::make()->prompt('分析这段销售话术...');
$image = Image::of('一只坐在厨房台面上的甜甜圈')->generate();

2. PHP Attributes 大面积原生支持

Laravel 13 在控制器、中间件、授权、队列任务、Eloquent、事件、通知、验证、测试等超过15个核心组件中原生支持了PHP属性配置。例如 #[Middleware]#[Authorize]#[Tries]#[Backoff] 等,这使得主体逻辑代码变得更加干净和直观。

#[Middleware('auth')]
#[Authorize('create', [Comment::class, 'post'])]
public function store(Post $post) { }

这种方式虽然让代码更优雅、可读性更高,但对于习惯了注释式配置的国内PHPer来说,可能需要一个适应过程。不过,这无疑是PHP 8.0+ 的大势所趋,新项目建议直接采用属性,老项目则可以逐步迁移。

3. Queue::route() 集中队列路由

新的 Queue::route() 方法允许你按Job类统一设置连接(connection)和队列名(queue),彻底解决了配置散落在各处的痛点。

use App\Concerns\RequiresVideo;
use App\Jobs\ProcessPodcast;
use App\Jobs\ProcessVideo;
use Illuminate\Support\Facades\Queue;

/**
 * Bootstrap any application services.
 */
public function boot(): void
{
    Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');
    Queue::route(RequiresVideo::class, queue: 'video');
}

4. 原生 JSON:API Resources 支持

现在,Laravel 原生支持 JSON:API 标准的资源类,可以自动处理资源序列化、关系包含、稀疏字段集、链接生成等,让符合标准的API开发更加快捷。

<?php

namespace App\Http\Resources;

use Illuminate\Http\Request;
use Illuminate\Http\Resources\JsonApi\JsonApiResource;

class PostResource extends JsonApiResource
{
    /**
     * The resource's attributes.
     */
    public $attributes = [
        'title',
        'body',
        'created_at',
    ];

    /**
     * The resource's relationships.
     */
    public $relationships = [
        'author' => UserResource::class,
        'comments',
    ];
}

在路由中使用也变得异常简单:

Route::get('/api/posts/{post}', function (Post $post) {
    return new PostResource($post);
});

// 或者更简洁的 Eloquent 方法
Route::get('/api/posts/{post}', function (Post $post) {
    return $post->toResource();
});

5. Cache::touch() 高效延长 TTL

新增的 Cache::touch() 方法可以直接延长一个已存在缓存项的生存时间(TTL),无需先 getput,性能提升显著。

Cache::touch('user_session:123', 3600);

6. 语义/向量搜索原生集成

Laravel 13 原生集成了对 PostgreSQL 及其 pgvector 扩展的支持,开箱即用地支持向量相似度查询和嵌入工作流。这为构建AI应用提供了极大便利。

DB::table('documents')
    ->whereVectorSimilarTo('embedding', 'Napa Valley 最佳酒庄')
    ->limit(10)
    ->get();

这个特性也暗示着,是时候将默认数据库考虑为 PostgreSQL 15+ 了,其原生的向量搜索能力能让AI应用开发流程更加顺畅。

7. 几个容易被忽略但超级实用的“小彩蛋”

  • Str::initials() 新助手函数:一行代码提取姓名首字母(例如 “Taylor Otwell” → “TO”),制作头像、显示缩写时非常方便。
  • saveOrIgnore() & insertOrIgnoreReturning():Eloquent 和查询构建器新增了冲突安全插入方法,处理唯一约束场景更加优雅。
  • schedule:pause / schedule:resume 命令:终于可以暂停或恢复整个任务调度器了,并且附带了相应的事件,让定时任务管理更加灵活。
  • eventStream() 响应:支持服务器推送事件(Server-Sent Events)流,非常适合实时通知、AI流式输出等场景。
  • PendingRequest pool() 默认并发 2:HTTP 客户端的并发默认值从 1 提升到了 2,虽然是小优化,但在批量请求场景下速度提升明显。
  • Artisan 命令新增 usage/help/hidden 属性:现在可以直接在命令类上使用属性来定义帮助文本和隐藏状态,代码更清晰。

升级说明

  • 最低要求PHP 8.3+(不再支持 PHP 8.2)。
  • 升级难度:破坏性变更极少,官方强调“大部分应用升级几乎无需改动”。
  • 升级工具:Laravel 12+ 用户可以直接在 Laravel Boost 中运行 /upgrade 命令,借助AI代理完成升级(社区已有人5分钟搞定)。

支持周期

  • Bug 修复:18个月(至2027年第三季度)。
  • 安全更新:2年(至2028年第一季度)。

Taylor Otwell 原话

“本次发布周期我们重点放在了最小化破坏性变更上,而是持续交付不破坏现有应用的开发者体验改进。”

如果你想第一时间尝鲜,直接运行以下命令即可:

composer require laravel/framework:^13.0

Laravel 13 的发布,标志着其AI原生时代的正式开启!本次更新在提升开发体验和拥抱现代AI工作流之间找到了很好的平衡。如果你已经升级,不妨在云栈社区分享你的体验和心得。

相关阅读




上一篇:工控工程师本地部署AI知识库指南:基于RAGFlow与Ollama的数据安全实践
下一篇:大模型企业项目落地杂谈:业务不清晰,再强 AI 也难形成飞轮效应
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-19 07:25 , Processed in 0.518366 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表