1

我正在使用 PHPStorm 开发一个 WordPress 项目。为了美化我的代码,我为 WP 下载了以下 CodeSniffer 规则并将它们放在我的项目文件夹中的构建目录中:https ://github.com/mrchrisadams/WordPress-Coding-Standards

现在,当我将 PHPStorm 设置为使用 ruleset.xml 时,出现以下错误:

PHP Code Sniffer
phpcs: PHP Fatal error: Cannot redeclare class WordPress_Sniffs_Strings_DoubleQuoteUsageSniff in /var/www/projectname/build/CodeSniffer/Sniffs/Strings/DoubleQuoteUsageSniff.php on line 31
PHP Stack trace:
PHP 1. {main}() /usr/bin/phpcs:0
PHP 2. PHP_CodeSniffer_CLI->process() /usr/bin/phpcs:37
PHP 3. PHP_CodeSniffer->process() /usr/share/php/PHP/CodeSniffer/CLI.php:561
PHP 4. PHP_CodeSniffer->populateTokenListeners() /usr/share/phpPHP/CodeSniffer.php:458
PHP 5. PHP_CodeSniffer::autoload() /usr/share/php/PHP/CodeSniffer.php:0

我还在基于 Drupal 拥有自己的 ruleset.xml 的另一个项目(不是同时)工作 - 它可以正常工作。

有谁知道这样的问题?

4

3 回答 3

1

此错误与 PhpStorm 无关,由 PHP_CodeSniffer 自身生成。

当您的 Sniff 类没有正确命名时,它就会出现。他们必须严格遵循 Sniff 的目录结构和文件。

如果您的课程名为 WordPress_Sniffs_Strings_DoubleQuoteUsageSniff

它应该位于:/Standards/WordPress/Sniffs/Strings/DoubleQuoteUsageSniff.php

于 2014-03-03T12:16:36.087 回答
0

还要确保包含您的嗅探的文件夹与 ruleset.xml 中指定的名称相同。

例如,如果您的 ruleset.xml 说:

<ruleset name="Joomla">

或者

<ruleset name="Wordpress">

包含所有嗅探器的文件夹可以命名为:

/php/pear/PHP/CodeSniffer/Standards/Joomla/... <= inside you will have ruleset.xml and Sniffs folder

或者

/php/pear/PHP/CodeSniffer/Standards/Wordpress/... <= inside you will have ruleset.xml and Sniffs folder
于 2014-01-04T13:09:59.403 回答
0

您自己的规则集似乎包含此规则(WordPress Strings DoubleQuoteUsageSniff)两次,这可能会导致您的规则集中止。

我建议您查看您的 ruleset.xml 并删除这两个嗅探之一。这可能是由于首先包含另一个规则集而引起的。

于 2013-05-08T06:32:47.763 回答