Пользовательский набор правил для phpcs с использованием PHPStorm

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

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


person user1293263    schedule 14.05.2012    source источник


Ответы (3)


Вам нужно будет создать собственный стандарт кодирования, если вы хотите переопределить встроенные. Это всего лишь вопрос создания файла 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
person Greg Sherwood    schedule 15.05.2012

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

person JanDesch    schedule 06.08.2013

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

person user755542    schedule 03.06.2012
comment
Я провел большую часть дня, пытаясь заставить это работать. PHPStorm даже не загрузит список установленных стандартов, единственные параметры в настройках инспектора пустые и настраиваемые, и даже выбор настраиваемого параметра проверки никогда не отображается. Я могу заставить phpcs правильно запускать CLI, но было бы неплохо, чтобы он работал так, как предписано в документации для PHPStorm. - person Nate Nolting; 05.03.2013