🏥 PHPDoctor: Check files, full directories or strings for missing or bad PHPDoc types.
APACHE-2.0 License
Check PHP files or directories for missing types.
If you already use PHPStan for your type checks but sometimes someone in the team still commit non typed code, then PHPDoctor is for you.
https://github.com/voku/PHPDoctor/releases
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"]
Parse a string:
$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']
You can use <phpdoctor-ignore-this-line/>
in @param or @return phpdocs to ignore the errors directly in your code.
/**
* @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;
}
Prepare: https://github.com/phar-io/phive
phive install humbug/box
php tools/box compile --debug
For support and donations please visit Github | Issues | PayPal | Patreon.
For status updates and release announcements please visit Releases | Twitter | Patreon.
For professional support please contact me.