filament的 v4 Beta即将发布,转载了一篇博文过来
是时候公布 v4 Beta 的细节了
在过去几年里,Filament 项目发布了很多激动人心的消息,但没有哪个比 v4 版本的消息更受热切期待。那么,今天,在这篇文章中,我们将公布一些关于即将在不久后发布的 v4 Beta 的激动人心细节。敬请期待,因为发布时间近在眼前!
Filament v4
Filament v4 是 Filament 有史以来最大、功能最丰富的版本。老实说,在我深入研究所有即将发布的功能之前,我对此还颇为怀疑。毕竟,Filament v3 是一个巨大的版本,历经了 100 多个小版本的迭代才得以完成!我们非常期待 Filament 社区的各位能亲自体验 v4,并告诉我们你们对团队为这个最新主版本倾注的大量心血有何看法!
在我们揭晓发布细节之前(噢噢噢,悬念来了!),让我们先聊聊团队最为激动的一些即将登陆 Filament v4 的功能:
嵌套资源 (Nested Resources)
我们收到的关于 Filament 的最长期的请求之一就是将嵌套资源直接内置到 Filament 中。现在,在 v4 中,我们做到了!
对于那些可能从未听说过嵌套资源的人来说,它允许你在父资源的上下文中操作特定的 Filament 资源。例如,在一个学习管理系统中,你可能会有一个 CourseResource
类来支持你的 Course
模型。在一个 Course
中,你也可能有很多相关的 Lesson
对象,包含实际的课程内容。
以前,在 v3 中,你可以通过 CourseResource
中的模态框编辑相关的 Lesson
记录。这会打开一个带有表单的模态框,你可以在其中进行修改。然而,对于像 Lesson
这样的情况,一个简单的模态框表单可能实际上并不足够。相反,你可能更希望在相关 Course
的上下文中编辑 Lesson
,并且是在一个完整的页面中进行。现在,在 v4 中,嵌套资源允许你在其父资源的上下文中编辑子资源。
创建嵌套资源很简单——像创建普通资源一样使用 make:filament-resource
命令,但要加上 --nested
标志。完成后,你将得到一个与其父资源连接的 Resource
类,并且可以在其父资源的上下文中进行编辑。
我们对这个新增功能感到非常兴奋,希望它能成为你在 Filament 应用中可以使用的简单、愉快的解决方案!
多因素认证 (Multi-Factor Authentication)
长期以来,Filament 中的 Panel 包包含了一个用于登录、注册等的认证系统。无需任何调整,这个系统在许多应用程序中都运行得非常好。然而,虽然标准的仅邮箱/密码认证系统适用于许多应用,但我们完全承认,对于其他类型的应用,需要内置更多安全层。
总的来说,我们认为多因素认证在现代应用认证时代几乎是必需品,因此,为了帮助开发者构建更安全的应用程序,我们已经为你完成了繁重的工作!
为了给开发者提供更多选择,我们升级了 v4 的认证系统,使其开箱即用地包含了多因素认证选项!当应用程序开发者启用了 MFA 后,用户在注册和登录应用时需要执行额外的步骤来设置多因素认证。你可以允许用户使用 Google 双因素认证系统(例如:Google Authenticator)或邮箱验证码认证系统(例如:向指定邮箱发送一次性密码)。
就是这样!你所要做的就是启用该系统,Filament 将为你完成工作!无需设置 MFA 注册界面,无需管理 MFA 认证流程;只需轻松启用,一切都搞定了。
静态表格数据 (Static Table Data)
多年来我们听到的另一个常见请求是允许开发者使用 Filament 表格来处理那些并非由 Model
类支持的数据。过去,我们的建议是创建一个由 Sushi 支持的“模型”,但这并不适用于所有情况。
因此,我们花费了大量时间重新设计 Filament 的表格,现在它们能够接收静态的、非模型的数据,并以你所熟知和喜爱的现有 Filament 表格包的所有相同特性和优点来显示它们!
要向 Filament 表格添加静态数据,只需将你想显示的数据数组传递给现在 Table
对象上存在的 records()
方法即可。完成后,Filament 将渲染出你传入的任何数据。简单明了!
统一的 Schema 和 Action
在我们拆解并为支持静态数据而重建 Filament 表格包的同时,我们认为这也是对表单(Forms)、信息列表(Infolists)和操作(Actions)进行一些重构的好时机。
在 v3 中,表单组件位于 Forms
命名空间,信息列表组件位于 Infolist
命名空间。然而,当我们退一步审视这两个系统时,我们注意到它们有很多共同之处,并且可以通过相互结合而大大受益。因此,在 v4 中,我们将所有表单和信息列表组件迁移到了 Schema
命名空间。这意味着你需要担心的命名空间少了一个,但更重要的是,你现在可以在同一个 Schema 区域混合搭配使用表单和信息列表组件了!
类似地,在 Filament v3 中,操作(Actions)对于各级开发者来说一直有点像个“绊脚石”。当要使用一个 Action 时,很常见的情况是在代码编辑器中开始输入 Action
类,结果自动补全导入了错误的 Action
类。此外,在创建自定义 Action 时,很容易不小心扩展了错误的 Action 类,或者需要创建同一个 Action 的多个版本才能在表单、信息列表、表格等不同地方使用。为了解决所有这些问题,我们更新了 Action,使它们(几乎)都从同一个基础 Action 类扩展而来。这意味着你几乎再也不会导入错误的 Action 类了,而且更重要的是,你现在可以创建跨多个不同 Filament 包(表单、信息列表、表格等)可重用的 Action 了。
性能改进
最后,但同样重要的是,团队一直在努力消除 Filament 代码库中的一些性能瓶颈,并取得了令人难以置信的改进。我们仔细检查了每一个类,找出 v3 中存在的最大瓶颈,通过这样做,我们看到在特定应用程序升级到 Filament v4 时,性能有了巨大的提升。这些性能增强背后有很多技术细节,我们可能需要专门写一篇文章来详细说明,但是当你用上 v4 时,请告诉我们你是否注意到你的应用程序在升级后运行得更快了!
我们都翘首以盼的公告
说到亲自体验 v4 Beta,通过阅读完这篇文章(我知道你没有直接跳到这里,对吧?),我想你已经赢得了知晓 Filament 团队已正式确定 v4 Beta 发布日期的权利。
你无需再等太久,因为我们将在 2025 年 6 月 10 日 于 Laravel Live UK 发布 Filament v4 Beta!
我们非常期待大家能体验 v4 并向我们反馈。请记住,即将发布的版本仍然只是一个 BETA 版,因此我们不建议在任何生产环境或关键任务应用程序中使用它。
你对 v4 最期待的是什么?在 Twitter 或 Bluesky 上联系我们,告诉我们你最期待的功能吧!
微信交流群
如果加不了群,在下面这里给我反映一下
filament的 v4 Beta即将发布转载了一篇博文过来 - 乌鸦嘴社区
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: