带有PHPStorm的CodeSniffer会产生错误

时间:2013-02-13 16:26:59

标签: phpstorm codesniffer

我正在使用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的另一个项目(不是同时)上工作 - 它没有任何问题。

有谁知道这种问题?

3 个答案:

答案 0 :(得分:1)

此错误与PhpStorm无关,并且由PHP_CodeSniffer本身生成。

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

如果您的班级名为WordPress_Sniffs_Strings_DoubleQuoteUsageSniff

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

答案 1 :(得分:0)

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

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

答案 2 :(得分: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