Искам да разширя плъгин за сонар за PHP codesniffer с модификация в параметрите по подразбиране

По време на теста в сонара просто искам някои правила да бъдат променени, затова взех проба от

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 Plugin версия 2.0 по-голяма - person Abhijeet Kamble; 23.02.2015
comment
Както е споменато в docs.sonarqube.org/display/SONAR/PHP+Plugin , PHP плъгинът вече не разчита на външни инструменти, така че тези въпроси и отговори вече не са валидни. - person Fabrice - SonarSource Team; 23.02.2015