Я использую PHPMD (http://phpmd.org/) и я новичок в этом.
MD работает, сейчас я пишу набор правил, чтобы настроить, какие показатели следует использовать.
Вместо того, чтобы включать каждое правило в отдельности, я загружаю целые наборы правил.
Но теперь у меня проблема в том, что я не знаю, как настроить свойства отдельных правил, если я включу весь набор.
Например, я хочу использовать правило для проверки цикломатической сложности.
я могу использовать
<?xml version="1.0"?>
<ruleset name="Demo PHPMD rule set"xmlns="http://pmd.sf.net/ruleset/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description> custom ruleset that checks the code </description>
<rule ref="rulesets/codesize.xml/CyclomaticComplexity">
<properties>
<property name="reportLevel" value="11" />
</properties>
</rule>
</ruleset>
Но если я хочу использовать все правила из этого набора правил, я могу просто написать
<?xml version="1.0"?>
<ruleset name="Demo PHPMD rule set"xmlns="http://pmd.sf.net/ruleset/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description> custom ruleset that checks the code </description>
<rule ref="rulesets/codesize.xml" />
</ruleset>
Теперь, как я могу использовать конфигурацию свойства (в моем случае reportLevel для цикломатической сложности), когда я включаю весь набор правил?
Я пробовал что-то вроде
[...]
<rule ref="rulesets/codesize.xml">
<properties>
<property name="CyclomaticComplexity.reportLevel" value="11" />
</properties>
</rule>
[...]
Но это не сработало.
Я искал в документации, но нигде не нашел такого примера.
Единственный способ добиться этого — использовать элемент exclude, включая все правила из набора правил, кроме того, который вы хотите настроить, и затем включить его отдельно.
<?xml version="1.0"?>
<ruleset name="Demo PHPMD rule set"xmlns="http://pmd.sf.net/ruleset/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description> custom ruleset that checks the code </description>
<rule ref="rulesets/codesize.xml">
<exclude name="CyclomaticComplexity"/>
</rule>
<rule ref="rulesets/codesize.xml/CyclomaticComplexity">
<properties>
<property name="reportLevel" value="11" />
</properties>
</rule>
</ruleset>
Других решений пока нет …