2013-12-12 6 views
3

PHP Mess Detector 1.5.0을 사용하고 있으며 여러 가지 문제가 있습니다. 문제는 아니라고 생각합니다.PHPMD - 클래스에 대한 정적 액세스 피하기 - 상수 사용?

이 코드에서는 C++의 열거 형과 비슷한 상수를 사용하여 옵션을 처리합니다. 따라서 뭔가를 추가하고 싶다면 코드에서 FOO :: ADD를 1과 동일한 클래스에 전달합니다.

PHPUnit에서이 클래스를 테스트 할 수 있습니다. 상수를 검증하므로, 그렇다면 값과 상수를 함수에 전달할 수 있습니다.

필자는 왜 PHPMD가 PHP에서 안전하게 참조되는 const 값이기 때문에 PHPMD가이 점에 대해 불만을 제기하는지 잘 모르겠습니다. 내가 상수에 대한 자기 ::를 많이 사용하기 때문에

답변

2

자기 ::부모 ::을 받아 phpmd 코드를 변경합니다. 프로그램 PHP에서

/PMD가/규칙/CleanCode/StaticAccess.php 라인 (36)에서, 변화에 :

if ($this->isReferenceInParameter($reference) 
    || $reference->getImage() === 'self' 
    || $reference->getImage() === 'parent' 
    ) { 
    continue; 
} 
+0

나는 내가하지 않는 한, 내 자신의 PHPMD을 분기하고 유지해야 할 그 생각하지만, 도구가 바뀌면 일반 코드로 유용하게 사용할 수 있습니다. –

+0

동의합니다. 그것은 해결 방법과 같습니다. –