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
----------------------------------------------------------------------

Вы можете обновлять и изменять набор правил в зависимости от ваших потребностей.

Другие вопросы по тегам