PHPCS / PHPMD: существует ли способ проверки кода PHP Sniffer / Mess Detector для обеспечения наличия докблоков?
Есть ли способ, которым я могу использовать PHP Code Sniffer и / или PHP Mess Detector, чтобы определить, имеют ли мои классы / свойства / методы правильные docblocks? Например:
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(){
// ...
}
}
По определению меня не интересует, правильны ли докблоки (если возвращаемые типы совпадают с тем, что возвращается), я имею в виду: было бы неплохо, если бы это тоже было так, но первый шаг, который я хочу сделать, - это убедиться, что Докблоки присутствуют.
1 ответ
Решение из дублированного ответа также работает для проверки наличия докблока.
Это мой класс Бар, который имеет комментарии:
<?php
namespace PhpCSTesting;
use stdClass;
/**
* Class Bar
*/
class Bar
{
/**
* @var stdClass
*/
protected $bar;
/**
* This method does stuff
*
* @return boolean
*/
public function doStuff()
{
return true;
}
}
Когда я запускаю сниффер, я не получаю ошибок:
bin/phpcs Bar.php --standard=Squiz --sniffs=Squiz.Commenting.FunctionComment,Squiz.Commenting.FunctionCommentThrowTag,Squiz.Commenting.ClassComment,Squiz.Commenting.VariableComment
Это мой класс Foo, у которого нет комментариев:
<?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
----------------------------------------------------------------------
Вы можете обновлять и изменять набор правил в зависимости от ваших потребностей.