Я хочу расширить плагин сонара для PHP codeniffer с изменением параметров по умолчанию.

Во время теста в гидролокаторе я просто хочу, чтобы некоторые правила были изменены, поэтому я взял образец из

http://docs.codehaus.org/display/SONAR/Extend+PHP+coding+rules

и внести изменения в правило

scopeIndentIncorrect, и это работает. потому что они дали параметры, которые я изменил.

но теперь я хочу изменить

FunctionCallSignatureIndent и хотите передать параметры для этого

каждый результат, который я сделал, привел к созданию нового плагина, так что есть ли другой способ сделать это?

<rule key="PEAR.Functions.FunctionCallSignature.Indent" priority="MAJOR">
<category name="Maintainability"/>
<name>CustomFunctionCallSignatureIndent</name>
<configKey>FUNCTION_CALL_SIGNATURE_INDENT</configKey>
<description><![CDATA[Multi-line function call not indented correctly; expected %s spaces but found %s]]></description>
<param>
  <key>indent</key>
  <description>The number of spaces code should be indented.</description>
  <defaultValue>4</defaultValue>
</param>

Это запись, которую я сделал в rules.xml


person Bhavin Vora    schedule 24.05.2012    source источник


Ответы (1)


Нет, для этого не нужно писать плагин Sonar. Вам просто нужно:

  1. Внесите изменения в FunctionCallSignatureIndent.
  2. Добавьте новое правило, как описано в http://docs.codehaus.org/display/SONAR/Extend+PHP+coding+rules
  3. Для этого нового правила добавьте тег «», как вы можете видеть в примере PHPMD для http://docs.codehaus.org/display/SONAR/Extend+PHP+coding+rules

И затем, после перезапуска Sonar, вы сможете настроить это правило в веб-интерфейсе Sonar.

person Fabrice - SonarSource Team    schedule 24.05.2012
comment
эй Фабрис Спасибо за ответ, позвольте мне обновить мой вопрос, чтобы вы могли получить то, что я хочу сказать. после внесения этих изменений я могу обновить значения pamameter в редакторе профилей, но после перестроения проекта никакого влияния на нарушение кода нет. - person Bhavin Vora; 24.05.2012
comment
Вы вносили изменения в код самого PHP Sniff? (в установке PHPCodeSniffer) - person Fabrice - SonarSource Team; 24.05.2012
comment
не единственное изменение, которое я сделал, это добавление параметра в файл расширения. предложите мне, если какие-либо изменения должны быть сделаны. - person Bhavin Vora; 24.05.2012
comment
Да, вам, очевидно, придется модифицировать исходный код PHPCodeSniffer, если вы хотите добавить несуществующий параметр. XML-файл, который вы изменили, является просто связующим звеном между Sonar и PHPCodeSniffer: он сообщает Sonar, что PEAR.Functions.FunctionCallSignature.Indent имеет параметр. Но если реальная программа проверки PHPCodeSniffer не имеет этого параметра, это фактически бесполезно. - person Fabrice - SonarSource Team; 24.05.2012
comment
Хорошо, я только что забыл начальный шаг. Спасибо за вашу помощь. - person Bhavin Vora; 25.05.2012
comment
@Fabrice-SonarQubeTeam предоставленные вами ссылки больше не сохраняются. У вас есть обновленные URL-адреса для того же. я сталкиваюсь с теми же проблемами для SonarQube 5.0 с плагином PHP версии 2.0 выше - person Abhijeet Kamble; 23.02.2015
comment
Как указано в docs.sonarqube.org/display/SONAR/PHP+Plugin. , плагин PHP больше не полагается на внешние инструменты, поэтому эти вопросы и ответы больше не действительны. - person Fabrice - SonarSource Team; 23.02.2015