Laravel 13 正式发布:AI 原生开发、语义搜索与史上最平滑升级
Laravel 13 已正式发布!这一次,Taylor Otwell 和 Laravel 团队将焦点放在 “AI 原生工作流”(AI-native workflows) 上,同时强化默认安全配置、提升 API 表达力,并带来可能是 Laravel 历史上最轻松的一次主版本升级。
升级须知
- 最低 PHP 版本:PHP 8.3(不再支持 PHP 8.2)
- Bug 修复支持周期:至 2027 年 Q3
- 安全修复支持周期:至 2028 年 Q1
- 破坏性变更极少:官方明确表示,这是“最容易升级的主版本之一”,大多数应用只需更新依赖即可运行。
- 推荐工具:搭配 Laravel Boost 使用,可借助 AI 自动完成整个升级流程。
开发者友好的小改进
这些看似微小的增强,却能显著提升日常开发效率:
Cache::touch():延长缓存有效期
#55954 无需重新获取或写入,直接刷新缓存项的 TTL:
Cache::touch('user_profile_123');
更智能的 CSRF 防护
新增 PreventRequestForgery 中间件,在传统 token 验证基础上,增加 Origin 意图验证,有效防御跨站请求伪造攻击。
调度任务的动态控制
通过 Artisan 命令实时暂停或恢复计划任务:
php artisan schedule:pause weekly-report
php artisan schedule:resume weekly-report
核心特性一:原生语义与向量搜索
Laravel 13 首次在查询构建器中内置 向量相似度搜索(Vector Similarity Search) 支持,让开发者无需集成复杂外部服务即可实现语义搜索。
💡 语义搜索 vs 关键词搜索
用户搜索 “快速健康的晚餐”,关键词匹配可能失败;而语义搜索理解“快速”≈“15分钟”、“健康”≈“低脂沙拉”,从而返回真正相关的结果。
快速上手(以 PostgreSQL + OpenAI 为例)
- 安装 AI SDK:
composer require laravel/ai - 添加向量列:
// migration use Illuminate\Database\Schema\Blueprint; $table->vector('embedding', 1536); // OpenAI text-embedding-ada-002 的维度 $table->index(['embedding'], 'recipes_embedding_idx', 'hnsw'); // HNSW 索引加速搜索 - 生成并存储嵌入向量:
// 在模型或 Seeder 中 $recipe->embedding = Str::of($recipe->title . ' ' . $recipe->description) ->toEmbeddings(); - 执行语义搜索:
Recipe::whereVectorSimilarTo('embedding', 'something quick and healthy', similarity: 0.3) ->limit(5) ->get();
✅ 支持数据库:PostgreSQL(需
pgvector扩展)、MySQL 8.0+(需VECTOR类型)等。
核心特性二:全面拥抱 PHP 属性(Attributes)
Laravel 13 允许使用 PHP 8+ 原生属性(Attributes) 替代传统的数组式配置,代码更简洁、类型更安全、IDE 支持更好。
示例对比
模型定义
// 传统方式
class User extends Model
{
protected $fillable = ['name', 'email'];
protected $hidden = ['password'];
protected $table = 'users';
protected $primaryKey = 'user_id';
protected $keyType = 'string';
public $incrementing = false;
}
// Laravel 13 推荐方式
use Illuminate\Database\Eloquent\Attributes\{Fillable, Hidden, Table};
#[Hidden(['password'])]
#[Fillable(['name', 'email'])]
#[Table('users', key: 'user_id', keyType: 'string', incrementing: false)]
class User extends Model {}
控制器中间件与授权
use Illuminate\Routing\Controllers\Middleware;
use Illuminate\Routing\Controllers\HasMiddleware;
#[Middleware('auth:sanctum')]
class PostController implements HasMiddleware
{
#[Middleware('can:update,post')]
public function update(Post $post) { /* ... */ }
}
✅ 优势:减少样板代码,提升可读性,避免拼写错误,享受完整的静态分析支持。
核心特性三:官方 JSON:API 资源支持
Laravel 13 内置了符合 JSON:API 规范 的资源序列化器,无需第三方包即可构建行业标准 API。
输出结构优势
- 标准化:
id(字符串)、type、attributes、relationships - 去重包含(Included):多个资源引用同一关联对象时,仅序列化一次
- 前端友好:与 Ember Data、Vue Storefront 等生态无缝集成
// 定义资源
use Illuminate\Http\Resources\Json\JsonApiResource;
class UserResource extends JsonApiResource
{
public function toAttributes($request): array
{
return ['name' => $this->name, 'email' => $this->email];
}
public function toRelationships($request): array
{
return ['posts' => PostResource::collection($this->whenLoaded('posts'))];
}
}
更多细节请参考官方文档:Laravel JSON:API Resources。
核心特性四:Laravel AI SDK —— 构建你的专属 AI Agent
Laravel 官方推出 Laravel AI SDK,提供统一接口用于文本生成、嵌入、图像处理,并支持 Agent(智能体)开发。
实战:创建“食谱助手”Agent
- 定义 Agent:
class RecipeAgent extends \Laravel\AI\Agents\Agent { public string $instructions = '你是一个食谱助手,只能从我们的数据库中推荐食谱。'; public array $tools = [SearchRecipes::class]; // 可调用的工具 } - 创建 Tool(供 Agent 调用数据库):
class SearchRecipes { public function handle(string $query): string { return Recipe::whereVectorSimilarTo('embedding', $query, 0.3) ->limit(3) ->get() ->map(fn ($r) => "{$r->title}: {$r->description}") ->join("\n") ?: '未找到相关食谱。'; } } - 与 Agent 对话:
php artisan recipe:ask "我想吃点清淡的"Agent 自动调用工具,结合向量搜索结果,生成自然语言回复。
客服机器人、个性化推荐、内部知识库问答等。
史上最平滑升级:Laravel Boost + AI
Laravel 13 的升级体验被官方称为“前所未有地简单”。配合 Laravel Boost,甚至可以让 AI 完成整个升级过程:
- 安装 Boost:
composer require laravel/boost --dev php artisan boost:install - 在支持的 AI 编辑器(如 OpenCode)中输入
/laravel-boost:upgrade-laravel-v13:mcp - AI 将自动:
- 分析当前代码库
- 更新
composer.json依赖 - 修改配置文件(如 session 驱动、序列化类白名单等)
- 运行测试确保兼容性
- 提交干净的升级 PR
升级效率:从几小时缩短到几分钟,且风险大幅降低。
总结
Laravel 13 不是一次激进的重构,而是一次深思熟虑的进化:
- 拥抱 AI:通过向量搜索和 AI SDK,让 Laravel 应用具备语义理解和智能交互能力;
- 现代化语法:全面支持 PHP Attributes,代码更优雅;
- 标准化输出:内置 JSON:API 资源,提升 API 质量;
- 极致升级体验:配合 Laravel Boost,主版本升级如丝般顺滑。
🌟 Laravel 13 = 更智能 + 更简洁 + 更易维护 + 更易升级
无论你是构建传统 Web 应用,还是探索下一代 AI 原生产品,Laravel 13 都为你提供了坚实而现代的基石。
立即升级,开启你的 Laravel 13 之旅吧!
相关链接:
感谢所有为 Laravel 13 贡献代码的社区成员与核心团队!