2017-11-10 16 views
0

는 : 소나타 관리, 단일 관리 클래스는 내가 추가 방법 몇 가지 필드를 추가하고 있다면, 우리의 품질 게이트 그것은을 것을, 나에게 말하고이 경우프레임 워크 표준 구문에서 문자열을 추출하는 것이 좋습니다. 예를 들어

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

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

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

처럼 항상 반복 구문 'label'문자열을 2 번 이상 사용하여 냄새를 맡으십시오. 나는

const KEY_LABEL = 'label' 

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

처럼 상수의 전체 많은 많은 수업을하는 좋은 또는 나쁜 관행은 이제

인가 ... 그 문자열 상수를 추가해야합니다 ???

나는, 언젠가는 레이블 키가 변경됩니다 경우 큰 도움이 .. 프레임 워크에 의해 제공되는 무슨, 내가이 물건 중 하나의 방법을 변경할 필요가 알아낼 수 없습니다 ...

+1

상수를 사용할 이유가 없습니다. 코드 스니퍼가 항상 올바른 것은 아닙니다. – Andrew

+3

내가 사용하는 번들이 작동하는 방식을 변경하지 않을 것을 제안합니다. 바르게 지적하면 레이블이 변경 될 수 있으며 레이블을 변경하기 위해 전체 코드 기반을 거치지 않아도됩니다. 0이 아니라면 효과는 0에 가까워집니다. @Andrew가 말했듯이, 코드 스니퍼는 그들이 확인하고있는 코드를 실제로 이해하지 못하고,이 경우에 그들은 바보가됩니다. – tchap

+0

@tchap 외에도 PSR2 만 사용하면 충분하다고 생각합니다. /usr/local/bin/phpcs --standard = PSR2. – staskrak

답변

0

짧은 길이 symfony는 키의 이름을 변경하지 않습니다.

긴 답변 : Symfony는 상당히 엄격한 Backwards Compatibility Promise을 가지고 있습니다. 매우 가능성이 높습니다 label 키의 이름이 바뀝니다. 그러나 그것이 그것이 변하지 않을 것이라는 것을 의미하지는 않습니다.

키의 이름을 변경해야하는 경우 값을 변경해야 할 가능성이 큽니다. 즉, 이름 바꾸기가 아니라 이름 바꾸기를 의미합니다. 상수를 사용하면 키의 이름을 바꾸는 데 도움이되지만 값을 리팩토링하는 데 도움이되지 않습니다.

필자는 수년 전 Symfony에서 작업을 시작했으며 (2.1에서 시작하여 3.4-beta 테스트하기) 과거에는 '이름 바꾸기'를 수행해야했습니다. 거의 모든 경우에 키의 이름이 바뀌지는 않았지만 나중에 더 이상 사용되지 않고 다른 키로 대체되었습니다. 내가 기억할 수있는 예제 중 하나는 Choice form type refactorization이지만 더 좋은 예가 더있을 것입니다.

+0

이것에 대한 다른 말을 읽고 나면 이제 완전히 동의합니다. 감사 –