한 시간 동안 보고서를 살펴본 후 다음 목록을 작성하면 생각하는 모든 사람에게 도움이 될 수 있습니다.
더 많은 경고 / 오류가 발견되는 즉시 업데이트를 유지하도록 노력하겠습니다.
경고
줄이 80자를 초과합니다. X 문자를 포함
또는
줄이 최대 한도 인 100자를 초과합니다. X 문자를 포함
그것들은 내가 가장 많이 본 것입니다. 그들은 설명이 필요합니다. 깨끗하고 읽기 쉬운 코드를 유지하기 위해 코딩 라인을 작게 유지하는 것이 좋습니다.
함수 호출에서 쉼표 뒤에 공백이 없습니다.
매개 변수를 수신하고 쉼표 뒤에 공백을 추가하지 않은 함수를 호출했습니다. 예 : strrchr($bla,".")
해야strrchr($bla, ".")
\ "while (...) {\ n \"; \ "동안 (...) \ n {\ n \"
예상되는 \ "foreach (...) {\ n \"; \ "foreach (...) \ n {\ n \"을 (를) 찾았습니다.
예상 \ "if (...) {\ n \"; \ "if (...) \ n {\ n \"을 (를) 찾았습니다.
예상 \ "} else {\ n \"; \ "} \ n 다른 {\ n \"을 (를) 찾았습니다.
즉, 해당 PHP 문의 여는 괄호 앞에 줄을 반환 한 것입니다.
if / else 문이있는 잘못된 구문의 예 :
if (true)
{
}
else
{
}
해야한다
if (true) {
} else {
}
여러 줄 함수 선언의 닫는 괄호와 여는 중괄호는 같은 줄에 있어야합니다
대부분의 경우 다음과 같이 선언하는 생성자에서 발생합니다.
public function __construct(
ProductFactory $productFactory,
Test $test
)
{
}
반면 :
public function __construct(
ProductFactory $productFactory,
Test $test
) {
}
줄 끝 문자가 잘못되었습니다. \ "\ n \"이 (가) 필요하지만 \ "\ r \ n \"을 (를) 찾았습니다.
파일의 시작 부분에서 대부분의 시간이 발생합니다. IDE가 반환 문자를 인코딩하는 방식으로 인해 발생합니다.
변수 \ "your_variable \"이 유효한 낙타 캡 형식이 아닙니다.
모든 변수는 낙타 캡 형식을 $your_variable
사용해야하므로$yourVariable
변수 \ "one2Three \"는 숫자를 포함하지만 권장하지 않습니다
변수에 숫자를 사용하지 마십시오
인라인 제어 구조는 허용되지 않습니다
다음과 같은 인라인 제어 구조를 사용해서는 안됩니다.
else $test = true;
다음을 사용해야합니다.
else {
$test = true;
}
클래스의 여는 중괄호는 정의 후 줄에 있어야합니다.
클래스를 선언 할 때 줄을 반환했습니다.
class Test
{
여는 중괄호를 같은 줄에 유지해야합니다.
class Test {
개인 멤버 변수 \ "yourVariable \"은 밑줄을 포함해야합니다.
보호 된 멤버 변수 \ "yourVariable \"은 밑줄을 포함해야합니다.
보호 및 개인 구성원 변수에 밑줄을 추가해야합니다. $_yourVariable
이 두 가지와 반대로 공개 변수에 밑줄을 추가하면 다음을 얻을 수 있습니다.
공용 멤버 변수 \ "_ yourVariable \"은 밑줄을 포함 할 수 없습니다.
메소드 매개 변수 $ bla는 사용되지 않습니다
메소드에 매개 변수를 전달했지만 절대 사용하지 않습니다.
여러 줄 함수 선언이 올바르게 들여 쓰기되지 않았습니다. 8 개의 공백이 필요하지만 X가 발견되었습니다.
함수 선언 매개 변수에 들여 쓰기를 너무 많이 추가했습니다.
public function __construct(ProductRepository $productRepository,
ListsInterface $listsInterface,
Data $helper
) {
해야한다:
public function __construct(ProductRepository $productRepository,
ListsInterface $listsInterface,
Data $helper
) {
가능한 쓸모없는 메소드 재정의가 감지되었습니다
수정 사항을 추가하지 않고 메서드를 재정의하고 있습니다. 예 :
public function __construct(Context $context) {
parent::__construct($context);
}
루프에서 모델 LSD 메소드 load () 감지
load()
루프 내부 에서 메소드를 사용 하고 있으며 권장하지 않으며 피해야합니다.
코드는 다음과 같습니다.
foreach(...) {
$model->load();
}
루프에서 모델을로드하는 경우 실제로 성능면에서 상당히 나쁩니다. 몇 가지 속성 만 검색해야하는 경우 컬렉션을 대신 사용해야합니다.
함수의 순환 복잡도 (X)는 10을 초과합니다. 함수 리팩토링 고려
순환 복잡성에 익숙하지 않은 경우 https://pdepend.org/documentation/software-metrics/cyclomatic-complexity.html을 읽어보십시오 . 이 경고는 기본적으로 함수에 루프와 조건이 너무 많다는 것을 의미합니다.
Magento 2에서 직접 객체 인스턴스화는 권장되지 않습니다
클래스를 호출하여 객체를 직접 인스턴스화하고 있기 때문입니다. 예를 들면 다음과 같습니다.
new \Zend_Filter_LocalizedToNormalized
의존성 주입이나 최후의 수단 인 객체 관리자를 사용해야합니다.
주석은 TODO 작업을 나타냅니다
귀하의 의견 중 하나에 다음 @TODO
플래그 가 포함되어 있습니다 .
항상 참 또는 거짓 IF 문을 피하십시오
항상 참 또는 거짓으로 보이는 조건을 작성했습니다.
예를 들면 다음과 같습니다.
$variable = "6";
...
// More code that doesn't change $variable
...
if ($variable)
오류
\ "Class \"클래스의 네임 스페이스가 지정되지 않았습니다.
use Path\To\Class;
수업 시작시 문장 이 누락되었습니다 .