spiks/user-input-processor

任何类型用户输入的解耦器和验证器。


README

解耦和验证任何类型的用户输入,因此它可以在

  • HTML 表单中
  • API 中
  • 控制台命令参数中
  • ... 以及许多其他场景中使用。

安装

警告: 目前该库正在实际项目中测试,以检测其设计中的可能问题,因此API可能会发生变化。请等待稳定版本。

需要 PHP 8.1 或更高版本。该库可在 Packagist 上找到,并可通过 Composer 安装

composer require spiks/user-input-processor

特性

库背后的主要原则

  • 保持简单。 该库仅实现了所需的功能子集。扩展库以添加更多功能非常简单。该库旨在作为您自己实现的基座,而不是尝试做一切事情的瑞士军刀。
  • 为静态分析工具提供全面类型覆盖。 公共API和库内部遵循 PsalmPHPStan 的最严格规则 - 最受欢迎的PHP静态分析工具。我们在设计库时考虑了类型安全。如果您在项目中使用静态分析,您会非常欣赏这一点。

动机

在我们内部项目中,我们使用Symfony框架,该框架提供了用于用户输入验证的 Symfony Forms 包。Symfony Forms有很多缺点

  • 其内部非常复杂
  • 它仅设计用于HTML表单,且不适用于JSON API
  • 使用静态分析工具与Symfony Forms配合使用很痛苦
  • 在具有复杂逻辑的表单内维护很困难

对于用户输入验证没有很多替代方案。这就是我们决定创建自己的原因。

用法

当确定API和设计足够稳定时,本节将被编写。