sodalto / forms
HTML表单骨架。
dev-main
2021-12-10 13:02 UTC
Requires (Dev)
- phpunit/phpunit: 9.5.x-dev
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函数。首选方法是使用值对象,其中值对象只会接受有效值或抛出异常。然后可以捕获异常并将其显示为表单错误。
使用说明
- 创建一个实现
ValueObjectInterface.php
的值对象。值对象应始终保持有效状态,并在构造函数中如果传递的值无效则抛出异常。 - 创建一个表单类,并从
AbstractForm.php
扩展它 - 在您的表单类中实现
_configureFormValues()
方法。 - 在您的表单类中实现
setValues()
方法。
请参阅 tests/ContactForm.php
和 tests/ContactFormTest.php
以获取工作示例。
待续...