PHP CodeSniffer WordPress 通过 Composer
Posted
技术标签:
【中文标题】PHP CodeSniffer WordPress 通过 Composer【英文标题】:PHP CodeSniffer WordPress via Composer 【发布时间】:2018-07-07 05:37:56 【问题描述】:有没有办法通过Composer 为每个项目安装phpCodeSniffer 和WordPress Coding Standards for PHP_CodeSniffer? 我已经将两者都安装为开发依赖项,并在 CodeSniffer.conf 中将安装路径设置为 WordPress 编码标准。 不幸的是,当我在终端中运行命令时,phpcs 无法解析为配置文件,因为它正在“vendor”文件夹中查找“vendor/squizlabs/php_codesniffer/CodeSniffer.conf”
这是我的项目设置:
composer.json
"require-dev":
"squizlabs/php_codesniffer": "^3.2",
"wp-coding-standards/wpcs": "^0.14.0"
CodeSniffer.conf
<?php
$phpCodeSnifferConfig = array (
'installed_paths' => 'vendor/wp-coding-standards/wpcs',
)
?>
终端
vendor/bin/phpcs -p THEME_NAME --standard=WordPress
“错误:没有安装“WordPress”编码标准。安装的编码标准是PEAR、Zend、PSR2、MySource、Squiz和PSR1”
【问题讨论】:
【参考方案1】:首先,您不需要明确要求 PHP CodeSniffer,因为wp-coding-standards/wpcs
会自动提取它。
composer.json
"require-dev":
"wp-coding-standards/wpcs": "^0.14.0"
足够了。
要让 CodeSniffer 了解添加的编码标准,请在控制台终端上键入:
$ vendor/bin/phpcs --config-set installed_paths vendor/wp-coding-standards/wpcs
它将自动创建(并稍后找到)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
【讨论】:
非常感谢!这正是我所需要的。只是一个后续问题。我也遇到了类似的问题,但我想将CodeSniffer.conf
文件添加到根级别以通过 git 对其进行跟踪,而不是将其存储在通常排除在外的供应商中。有没有办法将 phpcs 指向另一个查找配置的路径?
CodeSniffer.conf
是一个内部文件。将您的自定义配置添加到您自己的ruleset.xml
- github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml
要自动注册composer install
和composer update
上的代码标准,请使用github.com/Dealerdirect/phpcodesniffer-composer-installer Composer 插件(WPCS 推荐)。以上是关于PHP CodeSniffer WordPress 通过 Composer的主要内容,如果未能解决你的问题,请参考以下文章
windows 安装pear & PHP_CodeSniffer
windows环境PhpStorm中简单使用PHP_CodeSniffer规范php代码