Laravel Fluent Validation:面向对象的规则构建器

最后更新于 经过

Laravel Fluent Validation:面向对象的规则构建器图片

Laravel Fluent 验证 , 经过 桑德·穆勒 是一个将 Laravel 传统的基于字符串的验证语法替换为流畅的面向对象 API 的软件包。它提供 IDE 自动补全和类型安全功能,确保您只应用对正在验证的数据类型有意义的规则。

流畅且类型安全的规则

而不是像这样连接字符串 'required|string|min:2|max:255' 您可以使用一系列方法。该 API 具有上下文感知能力,这意味着一旦您定义了规则类型(例如字符串或日期),则只有与该类型相关的方法才可用:

使用 SanderMuller\LaravelFluentValidation\FluentRule ;
$规则 = [
'姓名' => FluentRule :: 细绳 () -> 必需的 () -> 分钟 2 -> 最大限度 255 ),
'published_at' => FluentRule :: 日期 () -> '今天​​' -> 可空 (),
'年龄' => FluentRule :: 整数 () -> 分钟 18 -> 最大限度 99 ),
];

嵌套数组验证

该软件包通过使用以下方式简化了嵌套数据结构的验证: each()children() 方法。这允许您以反映数据结构的方式定义规则,而不是使用扁平的点表示法键:

'项目' => FluentRule :: 大批 () -> 必需的 () -> 分钟 1 -> 每个
FluentRule :: 孩子们 ([
'ID' => FluentRule :: 整数 () -> 必需的 () -> 存在 '产品' , 'ID' ),
'数量' => FluentRule :: 整数 () -> 必需的 () -> 分钟 1 ),
])
),

性能优化

除了语法改进之外,该软件包还包含几个以性能为中心的功能:

  • O(n) 通配符扩展: 对于大型嵌套数组,该软件包使用优化的扩展算法,其速度比 Laravel 原生的 O(n²) 方法快得多。
  • 快速检查封口: 常用规则被编译成 PHP 闭包,使验证器能够绕过主验证引擎传递值的开销。
  • 批量数据库查询: existsunique 通配符数组的规则会自动批量处理成单个数组。 whereIn 查询以减少数据库负载。

集成消息和标签

您可以直接在规则链中定义易于理解的标签和自定义错误消息。这样就无需维护单独的规则库。 attributes() 或者 messages() 表单请求中的数组:

'电子邮件' => FluentRule :: 细绳 ()
-> 电子邮件 ()
-> 标签 '电子邮件'
-> 信息 请提供有效的公司邮箱地址。 , '电子邮件' ),

安装

您可以通过 Composer 安装该软件包:

作曲家 要求 sandermuller/laravel-fluent-validation

该软件包需要 PHP 8.2+ 和 Laravel 11.0 或更高版本。它还包含用于集成的专用特性。 活线灯丝 项目。

您可以访问以下链接了解更多关于此软件包的信息并查看完整文档: GitHub

Yannick Lyn Fatt 的照片

Laravel News 的特约撰稿人和全栈 Web 开发人员。

归档于:
立方体

Laravel 时事通讯

加入超过 4 万名开发者的行列,不错过任何新的技巧、教程等内容。

图像
Laravel 云

轻松创建和管理服务器,并在几秒钟内部署 Laravel 应用程序。

访问 Laravel Cloud
PhpStorm 标志

PhpStorm

首选的 PHP IDE,对 Laravel 及其生态系统提供广泛的开箱即用支持。

PhpStorm
Lucky Media 标志

幸运传媒

Get Lucky Now——拥有十余年经验的 Laravel 开发理想之选!

幸运传媒
绝不妥协标志

绝不妥协

来自 No Compromises 播客的两位经验丰富的开发者 Joel 和 Aaron 现在可以为您的 Laravel 项目提供服务。⬧ 固定费用 9500 美元/月。⬧ 无冗长的销售流程。⬧ 无需签订合同。⬧ 100% 退款保证。

绝不妥协
Shift 标志

转移

还在运行旧版本的 Laravel?立即实现 Laravel 自动升级和代码现代化,让您的应用程序保持最新状态。

转移
了解 Softtech 的标志

了解软科技

Acquaint Softtech 提供 AI 就绪的 Laravel 开发人员,48 小时内即可上手,每月费用为 3000 美元,没有冗长的销售流程,并提供 100% 退款保证。

了解软科技
鱼叉:新一代时间跟踪和发票标志

Harpoon:新一代时间跟踪和发票系统

新一代时间跟踪和计费软件,帮助您的机构规划和预测盈利的未来。

Harpoon:新一代时间跟踪和发票系统
SaaSykit:Laravel SaaS 入门套件徽标

SaaSykit:Laravel SaaS 入门套件

SaaSykit 是一个多租户 Laravel SaaS 入门套件,包含运行现代 SaaS 所需的所有功能,例如支付、美观的结账界面、管理面板、用户仪表盘、身份验证、现成组件、统计数据、博客、文档等等。

SaaSykit:Laravel SaaS 入门套件
Kirschbaum 标志

樱桃树

提供创新和稳定性,确保您的Web应用程序取得成功。

樱桃树
Laravel Cloud 标志

Laravel 云

轻松创建和管理服务器,并在几秒钟内部署 Laravel 应用程序。

Laravel 云
Tinkerwell 徽标

廷克威尔

Laravel 开发者必备的代码运行器。可在本地和生产环境中体验 AI、自动补全和即时反馈功能。

廷克威尔
Laracon AU 2026 公布完整演讲嘉宾阵容、日程安排和研讨会图片

Laracon AU 2026 公布完整演讲嘉宾阵容、日程安排和研讨会信息

阅读文章
Parsel:使用 PHP 图像解析 PDF、Office 文档和图像

Parsel:使用 PHP 解析 PDF、Office 文档和图像

阅读文章
带有表现力图像的 Eloquent 类型对象

Eloquent 的类型化对象及其表达方式

阅读文章
Composer 2.10 镜像中的恶意软件阻止和依赖项策略

Composer 2.10 中的恶意软件阻止和依赖项策略

阅读文章
Laravel 的 Aegis:值对象的脚手架和验证辅助工具

Laravel 的 Aegis:值对象的脚手架和验证辅助工具

阅读文章
Playa:基于 Cookie 的 Laravel 临时播放器

Playa:基于 Cookie 的 Laravel 临时播放器

阅读文章