2017-03-06 9 views
1

내 클래스/속성/메소드에 적절한 docblock이 있는지 감지하기 위해 PHP 코드 스니퍼 및/또는 PHP Mess Detector를 사용할 수있는 방법이 있습니까? 예 :PHPCS/PHPMD : PHP 코드 스니퍼/메시 감지기가 있는지 확인하여도 블록이 있는지 확인하십시오.

class Foo 
{ 
    protected $bar; 

    public function doStuff(){ 
     // ... 
    } 
} 

위의 예는 적색 플래그를 발생시킵니다. 그러나 다음 예를 통과해야합니다

/** 
* Class Foo 
* @package Vendor\Module 
*/ 
class Foo 
{ 
    /** 
    * @var Vendor\Module\Model\Bar 
    */ 
    protected $bar; 

    /** 
    * This method does stuff 
    * @return bool 
    */ 
    public function doStuff(){ 
     // ... 
    } 
} 

을 내가 정의 당 (반환 유형이 무엇을하는 것은 반환됩니다 일치하는 경우) docblocks이 올바른지 관심 없어요, 내 말은 : 그것은 또한 않는 경우가 좋은 것 하지만, 제가 취하고 싶은 첫 번째 단계는 docblock이 있는지 확인하는 것입니다.

+0

@ LukasHajdu : 나는 그 대답을 보았다. 그러나 내가 그 질문을 오해하지 않는다면, docblock이 존재 하는지를 검사하기보다는 docblock 내부의 내용이 유효한지 확인하는 것이 더 중요하다. 내가 틀렸다면 나를 바로 잡아주세요. –

+0

중복 된 질문에 2017 년에 2 개의 새로운 옵션을 추가했습니다. 확인하십시오 : http://stackoverflow.com/a/43722973/1348344 –

답변

1

duplicated answer의 솔루션은 docblock 존재 확인을 위해 작동합니다.

bin/phpcs Bar.php --standard=Squiz --sniffs=Squiz.Commenting.FunctionComment,Squiz.Commenting.FunctionCommentThrowTag,Squiz.Commenting.ClassComment,Squiz.Commenting.VariableComment 

이것은 댓글이 없습니다 내 클래스 :

<?php 

namespace PhpCSTesting; 

use stdClass; 

/** 
* Class Bar 
*/ 
class Bar 
{ 
    /** 
    * @var stdClass 
    */ 
    protected $bar; 

    /** 
    * This method does stuff 
    * 
    * @return boolean 
    */ 
    public function doStuff() 
    { 
     return true; 
    } 
} 

내가 스니퍼를 실행하면 나는 오류를 얻을 :

는 의견을 가지고 내 클래스 :

<?php 

namespace PhpCSTesting; 

class Foo 
{ 
    protected $bar; 

    public function doStuff() 
    { 
     return true; 
    } 
} 

그러나이 클래스에 대한 스니퍼를 실행하면 오류가 발생합니다.

bin/phpcs Foo.php --standard=Squiz --sniffs=Squiz.Commenting.FunctionComment,Squiz.Commenting.FunctionCommentThrowTag,Squiz.Commenting.ClassComment,Squiz.Commenting.VariableComment 

FILE: /Users/lukas/workspace/Foo.php 
---------------------------------------------------------------------- 
FOUND 3 ERRORS AFFECTING 3 LINES 
---------------------------------------------------------------------- 
5 | ERROR | Missing class doc comment 
7 | ERROR | Missing member variable doc comment 
9 | ERROR | Missing function doc comment 
---------------------------------------------------------------------- 

필요에 따라 규칙 집합을 업데이트하고 수정할 수 있습니다.