0

例如:在奏鸣曲管理中,单个管理类总是有重复的语法,如

$formMapper->add('test', null, ['label' => 'testlabel']);

$formMapper->add('test1', null, ['label' => 'testlabel1']);

$formMapper->add('test2', null, ['label' => 'testlabel2']);

在这种情况下,如果我使用 add 方法添加多个字段,我们的质量门会告诉我,这是使用“标签”字符串超过 2 次的代码异味。我应该为该字符串添加一个常量...

现在有很多充满常量的类是好还是坏的做法,比如

const KEY_LABEL = 'label'

$formMapper->add('test2', null, [self::KEY_LABEL => 'testlabel2']);

???

我不知道,有什么好处..如果有一天标签键会改变,这是由框架给出的,我必须以任何一种方式对这些东西进行更改......

4

1 回答 1

0

简短的回答:不。Symfony 不会重命名键。

长答案:Symfony 有一个非常严格的Backwards Compatibility Promiselabel密钥被重命名的可能性不大。但这并不意味着它不会改变。

如果您必须“重命名”一个键,则很可能您也必须更改该值。这意味着您不是重命名,而是替换它。使用常量将帮助您重命名键,但它不会帮助您重构值。

多年前我开始使用 Symfony(从 2.1 开始,现在正在测试 3.4-beta),过去我不得不执行一些“重命名”。在几乎所有情况下,密钥都没有被重命名,但它已被弃用,后来被另一个密钥替换。我能记住的例子之一是Choice 表单类型重构,但我相信还有更多甚至更好的例子。

于 2017-11-10T14:30:22.050 回答