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。
讨论数量: 4

内容还挺多的

4天前 评论
JaguarJack (楼主) 4天前

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

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

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