【发布时间】:2017-07-13 15:27:23
【问题描述】:
下面是一些使用 Zend Form API 创建表单和创建子表单(又名字段集)的代码
AnnotationBuilder 类似乎没有与之关联的__construct,因此实例化一个新的AnnotationBuilder 对象是一个轻量级操作。
也就是说,我相信下面的代码可以保持原样:
$form = (new AnnotationBuilder())->createForm(CustomForm::class);
$form->add((new AnnotationBuilder())->createForm(CustomFieldset1::class));
$form->add((new AnnotationBuilder())->createForm(CustomFieldset2::class));
是否需要重构上述代码,或者保持原样是否安全?就性能而言,我认为除了几个额外的对象实例化之外,不会有任何重大损失。
例如,作为替代方案,我正在考虑创建一个变量来保存new AnnotationBuilder(),作为本地或在类范围内,然后根据需要重用该变量。但我不一定认为在这里这样做有什么好处。
【问题讨论】:
-
new AnnotationBuilder()构造一个新对象。这会使用内存 - 多少 无关紧要。如果你热衷于(微)优化,你想避免这种情况。除非需要来构建一个新对象。
标签: php refactoring dry