voku/phpdoctor

检查缺少或错误的 phpdoc 注释。

0.6.5 2022-10-31 11:55 UTC

README

Build Status Codacy Badge Latest Stable Version License Donate to this project using Paypal Donate to this project using Patreon

🏥 PHPDoctor

检查 PHP 文件或目录中缺少的类型。

如果您已经使用 PHPStan 进行类型检查,但团队中有时仍有人提交未类型化的代码,那么 PHPDoctor 就适合您。

通过 "phar" 安装(推荐

https://github.com/voku/PHPDoctor/releases

通过 "composer require" 安装

composer require-dev voku/phpdoctor

快速入门

Usage:
  analyse [options] [--] <path...>

Arguments:
  path                                                                                   The path to analyse

Options:
      --autoload-file[=AUTOLOAD-FILE]                                                    The path to your autoloader. [default: ""]
      --access[=ACCESS]                                                                  Check for "public|protected|private" methods. [default: "public|protected|private"]
      --skip-ambiguous-types-as-error[=SKIP-AMBIGUOUS-TYPES-AS-ERROR]                    Skip check for ambiguous types. (false or true) [default: "false"]
      --skip-deprecated-functions[=SKIP-DEPRECATED-FUNCTIONS]                            Skip check for deprecated functions / methods. (false or true) [default: "false"]
      --skip-functions-with-leading-underscore[=SKIP-FUNCTIONS-WITH-LEADING-UNDERSCORE]  Skip check for functions / methods with leading underscore. (false or true) [default: "false"]
      --skip-parse-errors[=SKIP-PARSE-ERRORS]                                            Skip parse errors in the output. (false or true) [default: "true"]
      --path-exclude-regex[=PATH-EXCLUDE-REGEX]                                          Skip some paths via regex e.g. "#/vendor/|/other/.*/path/#i" [default: "#/vendor/|/tests/#i"]

演示

解析字符串

$code = '
<?php declare(strict_types = 1);   
     
class HelloWorld
{
    /**
     * @param mixed $date
     */ 
    public function sayHello($date): void
    {
        echo \'Hello, \' . $date->format(\'j. n. Y\');
    }
}';

$phpdocErrors = PhpCodeChecker::checkFromString($code);

// [8]: missing parameter type for HelloWorld->sayHello() | parameter:date']

忽略错误

您可以在代码中直接使用 <phpdoctor-ignore-this-line/> 在 @param 或 @return phpdocs 中忽略错误。

/**
 * @param mixed $lall <p>this is mixed but it is ok, because ...</p> <phpdoctor-ignore-this-line/>
 *
 * @return array <phpdoctor-ignore-this-line/>
 */
function foo_ignore($lall) {
    return $lall;
}

构建 PHAR 文件

准备: https://github.com/phar-io/phive

phive install humbug/box
php tools/box compile --debug

支持

请访问 Github | 问题 | PayPal | Patreon 以获取支持和捐赠。

请访问 发布 | Twitter | Patreon 以获取状态更新和发布公告。

如需专业支持,请联系

感谢

  • 感谢 GitHub(Microsoft)托管代码并提供良好的基础设施,包括问题管理等。
  • 感谢 IntelliJ,他们为 PHP 开发了最佳 IDE,并授予我 PhpStorm 的开源许可证!
  • 感谢 Travis CI,它是最好的持续集成工具!
  • 感谢 StyleCI 提供简单但强大的代码风格检查。
  • 感谢 PHPStan && Psalm,它们提供了真正出色的静态分析工具,并帮助发现代码中的错误!