PHP CodeSniffer 如何检查没有扩展名的文件?

Lou*_*pax 5 php phpcodesniffer

在我的团队中,我们使用codesniffer来强制Symfony应用程序的编码风格,并且刚刚意识到没有扩展名的文件不会被检查,即使我们明确地使用该文件作为参数。正如本github 问题中讨论的那样,这是设计使然。

这意味着像bin/console这样的文件不会被检查,即使它们是有效的 PHP 文件,并且--extensions参数不接受空参数。

有没有办法让 CodeSniffer 也检查这些文件?

Dan*_* W. 0

我认为您可以指定*为通配符扩展名。

如果这不起作用,它在文档中指出:

如果您要求 PHP_CodeSniffer 检查特定文件而不是整个目录,则指定文件的扩展名将被忽略。即使文件的扩展名无效或根本没有扩展名,也会检查该文件。在以下示例中,即使 --extensions 命令行参数指定仅应检查 .php 文件,PHP_CodeSniffer 仍将检查 main.inc 文件。检查特定文件时忽略扩展名

$ phpcs --extensions=php /path/to/code/main.inc
Run Code Online (Sandbox Code Playgroud)

因此,如果您明确检查没有扩展名的单个文件,它应该可以工作。

它还进一步指出:

忽略特定文件的文件扩展名是 PHP_CodeSniffer 的一项功能,也是检查没有扩展名的文件的唯一方法。如果您检查整个目录的文件,则所有不带扩展名的文件都将被忽略,因此您必须单独检查每个文件。

请参阅https://pear.php.net/manual/en/package.php.php-codesniffer.advanced-usage.php