laravel 13 尚未发布,目前最新稳定版本为 laravel 11。由于 laravel 遵循严格的年度大版本发布周期(每年4月发布),且中间仅通过小版本进行维护,因此不存在从 laravel 11 直接升级到 laravel 13 的路径。你无法跳过 laravel 12 直接升级,因为 laravel 12 是连接这两个版本的必要桥梁。若需获得新特性或安全支持,必须等待 laravel 12 发布并完成升级后,再等待 laravel 13 发布并再次升级。

如何从 Laravel 11 升级到 Laravel 12?
从 Laravel 11 升级到 Laravel 12 需要遵循官方升级指南,主要涉及 Composer 依赖更新、配置文件重置以及代码兼容性检查。首先备份项目,然后修改 composer.json 中的 laravel/framework 版本约束为 ^12.0,并运行 composer update。升级后,需重新发布核心配置文件,如 php artisan vendor:publish --tag=laravel-config,以适配新版本的结构变化。同时,需检查第三方包是否已提供 Laravel 12 兼容版本,并处理可能废弃的 API。

{
"require": {
"php": "^8.2.0",
"laravel/framework": "^12.0",
"laravel/sanctum": "^4.0",
"laravel/tinker": "^2.9"
}
}
执行上述 composer.json 变更后,终端输出将显示正在解析依赖并安装 Laravel 12 相关包。确保所有测试用例通过,以验证升级未破坏现有功能。特别注意 routes/web.php 和 app/Http/Kernel.php 中的中间件配置,新版可能调整了默认中间件组。
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
Laravel 12 到 Laravel 13 的升级关键点是什么?
从 Laravel 12 升级到 Laravel 13 时,重点在于处理新的架构变更和弃用警告。Laravel 13 预计将引入更严格的类型声明和新的服务容器行为。升级前,务必启用 APP_DEBUG=true 并检查日志中的 Deprecation warnings。使用 composer require laravel/framework:^13.0 更新框架,随后运行 php artisan config:clear 和 php artisan route:clear 清除缓存。需手动合并新版配置文件差异,特别是 config/database.php 和 config/mail.php,以利用新增的连接池或邮件驱动优化。

// app/Providers/AppServiceProvider.php
public function boot(): void
{
// 处理可能的弃用逻辑
if (version_compare(app()->version(), '13.0.0', '>=')) {
// 针对 Laravel 13 的新特性调整
}
}
在 Laravel 13 环境下,建议重构使用旧版 Illuminate\Support\Str 中已弃用的方法。例如,将 Str::random() 的调用替换为推荐的 Str::ulid() 或 Str::uuid(),以确保长期兼容性。运行 php artisan test 确认所有单元测试和特征测试在新版本下依然通过。
Laravel 11 项目中哪些组件最易受版本跳跃影响?
在假设的从 Laravel 11 直接跃迁至 Laravel 13 的场景中(实际需经 Laravel 12),受影响最大的组件是 Eloquent ORM 关系定义和 API 资源序列化器。Laravel 12 和 13 可能改变模型属性的访问修饰符或关系延迟加载机制。例如,若原代码依赖 with()` 预加载特定关系,在新版本中可能因默认加载策略变更导致 N+1 查询问题。此外,Sanctum 认证中间件在版本迭代中常调整 CORS 配置参数,直接跨版本可能导致认证失效。需逐一检查 <code>app/Models 下的模型关联,并确保 config/cors.php 中的 paths 和 allowed_methods 符合新版规范。

















