2012-05-14 3 views
7

Я пытаюсь каким-то образом убедить phpcs использовать правила кодирования Zend, но для меня есть переменные с подчеркиваниями (например, $blub->foo_bar).Пользовательский набор правил для phpcs с использованием PHPStorm

Может ли кто-нибудь сказать мне, как изменить набор правил, который использует phpcs из PHPStorm, пожалуйста?

ответ

11

Вам нужно будет создать собственный стандарт кодирования, если вы хотите переопределить встроенные. Это всего лишь вопрос создания XML-файла со стандартным определением.

В вашем случае вам нужен весь код кодирования Zend, но вы не хотите, чтобы какое-либо конкретное правило конвенции об именах переменных. Таким образом, вы можете создать файл с именем mystandard.xml (назовите его, что вы хотите, и поместить его там, где когда-либо вы хотите) и поставить в следующем содержании:

<?xml version="1.0"?> 
<ruleset name="MyStandard"> 
<description>My custom Zend coding standard.</description> 
<rule ref="Zend"> 
    <exclude name="Zend.NamingConventions.ValidVariableName"/> 
</rule> 
</ruleset> 

Существует много больше вы можете сделать, чтобы настроить свой стандарт, в том числе вводя проверки с других стандартов, переписывая сообщения или заглушая некоторые из них. Вы можете ознакомиться с документами здесь: http://pear.php.net/manual/en/package.php.php-codesniffer.annotated-ruleset.php

Последнее, что я проверил, PHPStorm по какой-либо причине не позволял вам использовать пользовательские стандарты кодирования. Обычно вы просто вводите имя стандарта как полный путь к файлу mystandard.xml. Если PHPStorm по-прежнему не позволяет вам это сделать, единственный способ обмануть его - фактически установить свой собственный стандарт.

Обратите внимание, что это не то, что вам обычно нужно делать, и это немного сложно. Но если вы хотите попробовать, вот как вы это делаете:

  1. Найти, где PHPCS установлен в вашей системе. Если вы не знаете, где это, попробуйте pear config-show | grep php_dir. PHP_CodeSniffer будет находиться в директории под ним. Для меня, PEAR установлен в /usr/local/PEAR, так PHP_CodeSniffer находится на /usr/local/PEAR/PHP/CodeSniffer
  2. Создайте новую папку с именем MyStandard под /usr/local/PEAR/PHP/CodeSniffer/Standards
  3. Поместите свой файл mystandard.xml прямо там, но переименовать его в ruleset.xml

Для подтверждения вашего стандарт был установлен, запустите phpcs -i. Вы должны увидеть

The installed coding standards are MySource, MyStandard, PEAR, PHPCS, Squiz and Zend 

Теперь PhpStorm покажет (надеюсь) MyStandard в качестве опции в раскрывающемся списке. Если он не отображается, то они, вероятно, жестко закодировали список, и не будет никакого способа заставить его работать, не взламывая стандарт кодирования Zend напрямую.

Я надеюсь, что эта информация поможет вам найти решение. Если нет, то вы всегда можете запустить PHPCS непосредственно из командной строки, используя свой собственный стандарт:

phpcs --standard=/path/to/mystandard.xml /path/to/code 
0

Перечень стандартов не жёстко, это получается из phpcs. Установка вашего собственного стандарта, как описано выше, будет выполнять эту работу.

+0

Я провел большую часть дня, пытаясь заставить его работать. PHPStorm даже не загружает список установленных стандартов, единственные параметры в настройках инспектора пустые и настраиваемые, и даже выбор пользовательских параметров проверки никогда не отображается. Я могу заставить phsh правильно запускать CLI, но было бы неплохо, если бы он работал, как предписано в документах для PHPStorm. –

2

Можно добавить свой собственный набор правил для phpstorm, это можно сделать в настройках проекта => inspections => «Проверка кода PHP-кода», используя стандарт кодирования «Пользовательский» и установить корневой каталог вашего пользовательский набор правил.xml

 Смежные вопросы

  • Нет связанных вопросов^_^