2013-02-13 1 views
1

PHPStorm을 사용하는 WordPress 프로젝트에서 작업하고 있습니다. 내 코드를 아름답게하기 위해 내가 WP에 대해 다음 CodeSniffer 규칙을 다운로드하여 내 프로젝트 폴더에 내 빌드 디렉토리에 넣어 :PHPStorm이있는 CodeSniffer가 오류를 생성합니다.

: 나는 ruleset.xml를 사용하는 PHPStorm을 설정하면 이제 https://github.com/mrchrisadams/WordPress-Coding-Standards

, 나는 다음과 같은 오류가 발생합니다

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이있는 다른 프로젝트 (동시에는 아님)에서 작동합니다. 문제없이 작동합니다.

누구든지 그런 종류의 문제를 알고 있습니까?

+1

프로젝트 전체 검색을 수행 ('편집 | 찾기 |에서 찾기 경로')'클래스 WordPress_Sniffs_Strings_DoubleQuoteUsageSniff' (또는 매우 유사) - 어떻게 든이 클래스를 두 번로드하고 있습니다 (자동 로더 문제 ??) - 몇 가지 힌트를 줄 수 있습니다. – LazyOne

답변

0

자신의 규칙 집합이이 규칙 (WordPress Strings DoubleQuoteUsageSniff)을 두 번 포함하고 있기 때문에 규칙 집합이 중단 될 수 있습니다.

ruleset.xml을 살펴보고이 두 가지 중 하나를 제거하는 것이 좋습니다. 먼저 다른 규칙 집합을 포함시켜야 할 수도 있습니다.

0

또한 sniff가 포함 된 폴더의 이름이 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 
1

이 오류는 PhpStorm과 관련이 없으며 PHP_CodeSniffer 자체에서 생성됩니다.

Sniff 클래스의 이름이 잘못 지정되었을 때 나타납니다. 그들은 엄격하게 디렉토리 구조와 Sniff의 파일을 따라야합니다.

클래스가 WordPress_Sniffs_Strings_DoubleQuoteUsageSniff

를 호출하면

가에 위치해야합니다 /Standards/WordPress/Sniffs/Strings/DoubleQuoteUsageSniff.php

관련 문제