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 服务器:

  1. 点击”添加资源”

  2. 选择”WebSockets”

  3. 选择连接限制

  4. 点击”创建”

  5. 完成

所有 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 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 8

内容还挺多的

3周前 评论
JaguarJack (楼主) 3周前

看了 Laracon 2025 的录播,觉得除了上面这些,还有 Pest 针对测试的功能做的也很棒,litebase 这个项目也挺有意思的。

3周前 评论
JaguarJack (楼主) 3周前
yangweijie

Laravel Boost 是一个 Composer 包, 这个包在哪? 或者github在哪

2周前 评论
JaguarJack (楼主) 1周前
JaguarJack (楼主) 1周前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
开发 @ 家里蹲开发公司
文章
85
粉丝
75
喜欢
394
收藏
272
排名:19
访问:27.9 万
私信
所有博文
社区赞助商