sodalto/forms

HTML表单骨架。

dev-main 2021-12-10 13:02 UTC

This package is auto-updated.

Last update: 2024-09-10 19:01:49 UTC


README

PHP中管理HTML表单的概念性骨架。

原理

  • 表单应该被视为一等公民。一个不错的表单需要相当的前端定制。往往现有的通用表单解决方案不足以满足需求,并且对于除预定义的CRUD操作之外的内容变得过于复杂。预期表单应该通过最小支持(此库)手工定制。

  • 表单是自包含的单元(不要将表单功能分散到多个类中)。这也意味着html(无论是原始html还是模板)嵌入到php表单类中,这是...可以的。灵感来自Reactjs基于类的组件及其JSX html-in-js语法。这样,您可以使用php语言的全部功能来描述视图逻辑,包括IDE功能,如重构和导航。例如,在twig模板中编码稍微复杂的行为会很快变得混乱。

  • 表单应该易于重用。您应该能够像操作任何其他php对象一样扩展/修改表单。

  • 表单不应依赖于外部验证库,而应依赖于内置的php函数。首选方法是使用值对象,其中值对象只会接受有效值或抛出异常。然后可以捕获异常并将其显示为表单错误。

使用说明

  1. 创建一个实现 ValueObjectInterface.php 的值对象。值对象应始终保持有效状态,并在构造函数中如果传递的值无效则抛出异常。
  2. 创建一个表单类,并从 AbstractForm.php 扩展它
  3. 在您的表单类中实现 _configureFormValues() 方法。
  4. 在您的表单类中实现 setValues() 方法。

请参阅 tests/ContactForm.phptests/ContactFormTest.php 以获取工作示例。

待续...