Laracon 2025 主题演讲回顾
Laracon 2025 主题演讲回顾
今年的 Laracon 主题演讲内容极其丰富,包含七个主要板块,涵盖了开源项目更新、AI 驱动的开发工具,以及重新定义现代 Web 开发的基础设施。以下是完整的内容总结。
🎯 新框架特性(Taylor Otwell)
🚀 开源深度解析(Joe Tannenbaum)
🤖 Laravel AI(Ashley Hindle)
🎨 Laravel 设计(David Hill)
🌙 Nightwatch(Taylor Otwell)
⚒ Forge 2.0(James Brooks)
☁️ Laravel Cloud(Joe Dixon)
Taylor Otwell 首先欢迎与会者参加 Laracon,并表示 Laravel 生态系统比以往任何时候都更加强大。随后,他开始介绍新的框架特性。
🎯 新框架特性
基于属性的容器绑定
传统的接口绑定需要在 AppServiceProvider
中进行配置,新的属性绑定功能简化了这一过程。
传统方式:
$this->app->bind(PaymentProcessor::class, Stripe::class);
新方式:
#[Bind(Stripe::class)]
interface PaymentProcessor
{
// 绑定完成
}
此外,还支持环境特定的绑定:
#[Bind(Stripe::class)]
#[Bind(FakeStripe::class, environments: ['local'])]
interface PaymentProcessor
{
// 生产环境使用 Stripe,本地环境使用测试实现
}
该属性还支持 #[Singleton]
和 #[Scoped]
装饰器,提供细粒度的实例管理控制,这对队列任务和 Octane 应用程序特别重要。
流畅的 URI 构建器
新的 URI 构建器解决了手动 URL 字符串操作的复杂性问题。
传统的字符串拼接方式被更优雅的链式调用所取代:
$uri = URI::for('https://laravel.com')
->withPath('/docs')
->withQuery(['version' => '11.x', 'page' => 'routing'])
->withoutQuery('page') // 移除查询参数
->withFragment('installation');
URI 对象可以直接从路由返回:
Route::get('/redirect', function() {
return URI::route('users.index')
->withQuery(['filter' => 'active']);
});
Laravel 会自动处理重定向,提供了更好的代码可读性。
缓存记忆化
在单个请求中多次调用 Cache::get('expensive-key')
会导致重复的缓存存储访问,即使查询的是相同的数据。
在 Taylor 的演示中,一个路由中四次缓存调用导致了四次实际的缓存查询,这并不理想。
解决方案:
// 传统方式
$value = Cache::get('expensive-key');
// 记忆化方式
$value = Cache::memoGet('expensive-key');
Laravel 在首次检索后将值保存在内存中,后续调用直接从内存返回,无需再次访问缓存存储。
当在请求期间通过 Cache::put()
更新值时,Laravel 会自动更新记忆化版本,确保数据一致性,无需手动缓存清理。
🚀 开源深度解析
Joe Tannenbaum 介绍了一系列开源改进,这些改进将显著提升开发者的日常开发体验。
广播功能的 JavaScript 重构
php artisan install:broadcasting
命令进行了全面重构。Laravel 现在会预先收集所有必需信息,而不是要求开发者在选择提供者后自行配置其余部分:
自动将正确的环境变量写入
.env
文件为 JavaScript 端提供 Vite 配置
检测前端框架(Vue/React)并进行相应配置
自动安装相应的 Laravel Echo 包
Hooks 替代样板代码
传统的生命周期管理方式:
// 传统方式 - 复杂的生命周期管理
onMounted(() => {
channel = Echo.channel('orders').listen('OrderShipped', (e) => {
// 处理事件
})
})
onUnmounted(() => {
Echo.leave('orders')
})
使用新的 Hooks 方式:
// 新方式 - 简化的 hooks
const { data } = useEcho({
channel: 'orders',
event: 'OrderShipped'
})
这些 hooks 自动处理组件的挂载和卸载,提供类型安全,并支持公共、私有、存在和模型频道。同时支持 Vue 和 React 框架。
流媒体简化
Laravel 的服务器端流媒体实现相对简单(约 10 行代码),但在 JavaScript 端处理这些流较为复杂。
新引入的流 hooks:
const { data, isStreaming, cancel, restart } = useStream('/api/chat')
这些 hooks 自动处理流数据的连接,提供连接状态管理,支持取消操作和 JSON 解析。将所有复杂的流处理逻辑封装在单个 hook 中。
Inertia 表单改进
传统的 Inertia 表单需要大量样板代码和 useForm()
调用。
新的 Inertia Form 组件可以直接替换 HTML form 标签:
<Form action="/login" method="post" v-slot="{ data, errors, processing }">
<input name="email" />
<input name="password" />
<button :disabled="processing">Login</button>
</Form>
无需 v-model
绑定或 form.something
引用。仅需使用 name 属性,并通过 slot props 获取表单状态。该功能将在几周后发布。
Laravel Wayfinder:类型安全解决方案
Joe 解决了 PHP 和 TypeScript 之间的重要问题。客户端需要了解服务器端的定义,但通常只能通过魔术字符串进行猜测。
消除魔术字符串
不再使用 post('/login', ...)
,Wayfinder 自动为路由生成 TypeScript 定义:
import { store } from './authenticated-session-controller'
路由成为具有 method 和 URL 属性的类型化对象。当 PHP 路由从 POST 更改为 PUT 时,会自动反映在客户端代码中。
Inertia 获得类型安全改造
Wayfinder 理解你的整个 Inertia 设置:
你的组件接收什么 props
你的请求数据应该是什么形状
提交表单时服务器期望什么
改变服务器端表单请求,boom——TypeScript 定义自动更新。向你的 PHP 验证添加必需的 active
布尔字段?如果你忘记包含它,前端立即显示红色波浪线。
标准 HTTP 也获得了关爱
不使用 Inertia?Wayfinder 也适用于标准 fetch 请求。你的分析端点期望特定的页面值?Wayfinder 基于你的验证规则为有效值提供自动完成。
Laravel Ranger:魔法背后的引擎
Wayfinder 基于 Laravel Ranger 构建,这是一个更通用的包,它遍历你的 Laravel 应用并发现”有趣的东西”——模型、枚举、验证规则——并将它们转换为良好类型的 DTO。
想要完全匹配你的 PHP 模型的自动生成 JSON 模式?Ranger 为你搞定。
时间线:
Echo 和流 hooks:现在可用
Inertia 表单组件:几周后推出
Wayfinder 和 Ranger:公开测试版”非常、非常快”,2025 年秋季完整发布
🤖 Laravel AI
Ashley Hindle 介绍了 Laravel 在 AI 领域的发展。虽然大型语言模型对 PHP 和 Laravel 有一定了解,但在日常开发辅助方面仍存在不足。
Laravel Boost:AI 编码工具套件
Laravel Boost 是一个 Composer 包,旨在将 AI 结对编程从”可能有用”提升到”实际有用”的水平。
三个重要的核心功能
1. Laravel 专用 MCP 服务器
为 AI 代理提供 Laravel 专用功能:
直接数据库查询
通过 Tinker 执行代码
文档搜索
项目结构理解
2. 版本特定文档
Laravel 已对整个生态系统文档进行向量化处理,并具备版本感知能力。使用 Laravel 10 和 Inertia 1.x 时,可获得该特定组合的精确文档。
3. Laravel 维护的 AI 指导
Boost 自动为 Cursor、Juni、GitHub Copilot 和 Claude 生成配置文件,包含经过精心策划的版本特定指导。
安装过程
composer require laravel/boost --dev
php artisan boost:install
交互式安装程序自动检测 IDE 设置,识别正在使用的包,并发现项目特定的指导。
根据确切的包版本自动发现相应的指导——演示中展示了 13 个不同的指导,包括 Inertia V2、PHPUnit、Flux UI 和 Tailwind 4。
项目特定的指导使用 Blade 模板格式,支持数据库查询等动态功能。
工具的武器库
MCP 服务器包括:
列出 artisan 命令
查询数据库
从相对路径获取绝对 URL
搜索文档
浏览器日志
应用程序信息
前后对比:天壤之别
没有 Boost:AI 创建功能代码,但在代码审查中会被拒绝。
有了 Boost:AI 搜索文档,找到正确的方法,并使用正确的组件正确实现。
搜索文档工具起到了关键作用。
最棒的部分?Laravel Boost 在 Laracon 2025 后两周内免费发布。
🎨 Laravel 设计
David Hill 解释了 Laravel 的设计团队在过去一年中如何从一人增长到六人。但他们不只是让东西变漂亮——他们在挖掘用户反馈数据:
“我们倾听,我们阅读,我们观察你分享的一切…从你的推文到支持邮件,你的博客文章,你的播客,你的 YouTube 视频,是的,甚至是令人愉快的 Reddit 帖子。”
这解释了为什么 Laravel 产品感觉就像是由真正使用它们的人构建的。
🌙 Nightwatch 更新
Taylor 宣布了立即改进:
新定价:
所有计划中包含的事件增加
额外事件现在每 10 万个收费 50 美分(显著降低)
新功能(今天可用):
缓存洞察页面:查看缓存命中、未命中和命中率
Slack 集成:将异常推送到 Slack 频道
是的,Nightwatch 亮色模式在这里——为可访问性进行了适当的重新思考,而不仅仅是反转颜色。
⚒ Forge 2.0
James Brooks 揭幕了 Forge 2.0——开发了一年多。使用 Vue 3、TypeScript 和 Inertia 构建,具有镜像 Laravel Cloud 的新 UI,同时保持 Forge 的个性。
新界面专注于上下文相关信息:最近的服务器、站点、部署和活动源。
Laravel VPS:游戏改变者
Taylor 宣布了 Laravel VPS——通过他们与 DigitalOcean 的合作伙伴关系直接从 Laravel 购买服务器。没有更多的 API 密钥,没有复杂的设置。只需注册 Forge 并开始创建服务器。
Taylor 设定了一分钟以下服务器配置的目标。他们摧毁了它——服务器在 5-10 秒内准备就绪。现场演示显示一个完全运行的服务器,数据库凭据几乎立即准备就绪。
另外,你得到一个免费的 .onforge.com
域名——不再在向客户展示工作 URL 之前共享 IP 地址或设置 DNS。
专业级功能
零停机部署: 你的部署在新的发布目录中运行,完全准备好,然后变为活动状态。部署期间不再交叉手指。
健康检查: 部署后,Forge 自动从世界各地的多个位置 ping 你的站点。如果有什么坏了,你立即知道。
心跳监控: 创建一个心跳,获得一个 URL,当计划任务完成时 ping 它。如果 Forge 没有收到你的调度器的消息,你会得到通知。
超越 Laravel:Nuxt.js 支持
演示显示了一个具有完整 SSR 支持的 Nuxt.js 应用程序,标志着 Forge 扩展到不仅仅是 Laravel 应用程序。
改变一切的终端集成
还记得 SSH 密钥管理、复制 IP 地址,以及只是为了调试某些东西的整个舞蹈吗?那已经死了。
Control+Backtick
让你进入服务器终端。就是这样。完整的自动完成、PHP 版本检查、HTOP——浏览器中的完整 SSH 会话。
站点级终端访问将你直接放到该站点的目录中。
协作功能令人震惊——查看团队成员何时开始会话并实时加入他们。服务器调试的结对编程。
时间线: 所有 Forge 更新在 8 周内发布。
☁️ Laravel Cloud
Joe Dixon 展示了 Laravel Cloud 如何重新构想现代 PHP 应用托管。
自部署的启动套件
选择 Laravel、Livewire、Vue 或 React。选择你的仓库名称和区域。Boom:
GitHub 仓库已创建
启动文件已推送
应用已部署
自动部署设置完成
从想法到部署的应用不到一分钟。
真正思考的自动缩放
为精细缩放控制设置自定义 CPU 和内存阈值。
这就像有一个全职 DevOps 工程师,他不睡觉也不搞砸。
托管队列集群:Horizon 替代方案
设置像”如果作业等待超过 5 秒,扩展”这样的规则。Cloud 监视 CPU、内存、队列长度、吞吐量、作业等待时间和工作器活动——然后实时垂直或水平自动缩放。
带有 2,000 个作业的演示显示了具有副本可视化的实时缩放。
一键 WebSockets(托管 Reverb)
启动 WebSocket 服务器:
点击”添加资源”
选择”WebSockets”
选择连接限制
点击”创建”
完成
所有 Reverb 环境变量自动注入,CORS 处理,每个应用获得隔离实例共享服务器基础设施。
发布时间表
✅ 今天可用:
生产就绪的 MySQL
带自动部署的启动套件
自动缩放阈值控制
🕒 8 月 12 日推出:
新的 Starter 和 Pro 计划定价
每个计划的自定义域名
智能队列集群
🍂 今年秋季推出:
完全托管的 Reverb
Laravel Valkey(开源 Redis 替代方案)
DevOps 自动化的 Cloud API
基于角色的访问控制
专用区域 + 企业计算
🎬 总结
Taylor(Laravel 作者) 以一个引起全场共鸣的声明结束了演讲:
“没有像这样的全栈开发体验。没有任何其他技术栈能够与之相比。”
这一观点确实有其依据。Laravel 的开发者体验、Laravel Boost 的 AI 驱动工具,以及 Laravel Cloud 提供的部署和自动化水平的结合,在 Web 开发领域创造了真正独特的技术栈。
从基于属性的绑定消除样板代码,到真正理解代码库的 AI 工具,再到自动扩展的基础设施,Laravel 不断推进着技术可能性的边界。
Laravel 生态系统已经达到了前所未有的强大程度,从这次主题演讲的内容来看,这只是一个开始。🚀
如需深入了解这些功能的具体实现,请查看官方 Laravel 文档并关注相关发布公告。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: