【发布时间】:2017-04-25 07:24:12
【问题描述】:
假设我在网络上有几个地方想要更新实体上的特定字段。例如,对于更改用户密码,我有一条路线,而对于更改用户详细信息(例如他来自哪里),我有另一条路线。哪种做法更好?只有一个表单类型类用于通过 form_row 呈现特定的表单字段?还是在表单构建器中有多个具有不同选项的表单类型类更好?
【问题讨论】:
假设我在网络上有几个地方想要更新实体上的特定字段。例如,对于更改用户密码,我有一条路线,而对于更改用户详细信息(例如他来自哪里),我有另一条路线。哪种做法更好?只有一个表单类型类用于通过 form_row 呈现特定的表单字段?还是在表单构建器中有多个具有不同选项的表单类型类更好?
【问题讨论】:
您应该遵循单一责任原则,
https://en.wikipedia.org/wiki/Single_responsibility_principle
UserDetailsType、ChangePasswordType...
每个类(在这种情况下是表单类)都应该用于单一目的,当然,它们都可以具有 data_class 实体,但用于特定用途。
如果您有两个类在做完全相同的事情,但可能只缺少一个字段,您可以这样做
$builder->remove('field')
在设置父级之后,但它必须是一个非常具体的案例......
【讨论】: