PHP CodeSniffer WordPress 通过 Composer

mar*_*ann 3 php wordpress composer-php phpcodesniffer

有没有办法通过Composer每个项目的PHP_CodeSniffer安装PHPCodeSnifferWordPress 编码标准?我已经将两者都安装为开发依赖项,并在 CodeSniffer.conf 中设置了 WordPress 编码标准的安装路径。不幸的是,当我在终端中运行命令时,phpcs 无法解析到配置文件,因为它在“vendor”文件夹中查找“vendor/squizlabs/php_codesniffer/CodeSniffer.conf”

这是我的项目设置:

作曲家.json

{
    "require-dev": {
        "squizlabs/php_codesniffer": "^3.2",
        "wp-coding-standards/wpcs": "^0.14.0"
    }
}
Run Code Online (Sandbox Code Playgroud)

代码嗅探器配置文件

<?php
    $phpCodeSnifferConfig = array (
        'installed_paths' => 'vendor/wp-coding-standards/wpcs',
    )
?>
Run Code Online (Sandbox Code Playgroud)

终端

vendor/bin/phpcs -p THEME_NAME --standard=WordPress
Run Code Online (Sandbox Code Playgroud)

“错误:未安装“WordPress”编码标准。已安装的编码标准是 PEAR、Zend、PSR2、MySource、Squiz 和 PSR1”

nib*_*bra 6

首先,您不需要显式地要求 PHP CodeSniffer,因为wp-coding-standards/wpcs它会自动拉取它。

composer.json

{
    "require-dev": {
        "wp-coding-standards/wpcs": "^0.14.0"
    }
}
Run Code Online (Sandbox Code Playgroud)

足够了。

要让 CodeSniffer 了解添加的编码标准,请在控制台终端上键入:

$ vendor/bin/phpcs --config-set installed_paths vendor/wp-coding-standards/wpcs
Run Code Online (Sandbox Code Playgroud)

它将自动创建(并稍后查找)该vendor/squizlabs/php_codesniffer/CodeSniffer.conf文件。

这应该在安装过程中自动发生;该软件包包含有关说明,但由于某种原因它们没有被执行。

现在,检查已安装的标准:

$ vendor/bin/phpcs -i
The installed coding standards are MySource, PSR2, Squiz, Zend, PSR1, PEAR, WordPress-Extra, WordPress, WordPress-Core, WordPress-VIP and WordPress-Docs
Run Code Online (Sandbox Code Playgroud)