【问题标题】:Unable to change ExcessiveMethodLength on phpmd via codeclimate无法通过 codeclimate 在 phpmd 上更改 ExcessiveMethodLength
【发布时间】:2019-02-13 07:42:02
【问题描述】:

我的项目的代码气候中不断出现这样的警告:

  • 文件 YummySearchComponent.php 有 360 行代码(超过 250 允许)。考虑重构。
  • 方法 getYummyHelperData 有 43 行代码(允许超过 25 行)。考虑重构。

我已尝试更改配置,但似乎没有任何效果。 Github 项目在这里:https://github.com/cnizzardini/cakephp-yummy

奇怪的是,像 ShortVariable 这样的默认值为 3,但我能够更改为 1。我做错了什么?

.codeclimate.yml

---
engines:
  duplication:
    enabled: true
    config:
      languages:
      - php
  eslint:
    enabled: true
  fixme:
    enabled: true
  phpmd:
    enabled: true
    config:
      file_extensions: "php"
      rulesets: "unusedcode,codesize,naming,phpmd.xml"
ratings:
  paths:
  - "**.inc"
  - "**.ctp"
  - "**.module"
  - "**.php"
exclude_paths:
- config/
- tests/
- webroot/

phpmd.xml

<?xml version="1.0"?>
<ruleset name="PHPMD rule set for my project" 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 rules for checking my project</description>

    <rule ref="rulesets/cleancode.xml">
        <exclude name="ElseExpression"/>
    </rule>

    <rule ref="rulesets/codesize.xml">
        <exclude name="TooManyPublicMethods"/>
    </rule>

    <rule ref="rulesets/codesize.xml/ExcessiveMethodLength">
        <properties>
            <property name="ignore-whitespace" value="true" />
            <property name="minimum" value="100" />
        </properties>
    </rule>

    <rule ref="rulesets/codesize.xml/ExcessiveClassLength">
        <properties>
            <property name="minimum" value="700" />
        </properties>
    </rule>

    <rule ref="rulesets/namingrules.xml/ShortVariable">
        <properties>
            <property name="minimum" value="1" />
        </properties>
    </rule>
</ruleset>

【问题讨论】:

    标签: php phpmd code-climate


    【解决方案1】:

    首先你需要

    <exclude name="ExcessiveMethodLength"/>
    <exclude name="ExcessiveClassLength"/>
    
    <?xml version="1.0"?>
    <ruleset name="PHPMD rule set for my project" 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 rules for checking my project</description>
    
        <rule ref="rulesets/cleancode.xml">
            <exclude name="ElseExpression"/>
        </rule>
    
        <rule ref="rulesets/codesize.xml">
            <exclude name="TooManyPublicMethods"/>
            <exclude name="ExcessiveMethodLength"/>
            <exclude name="ExcessiveClassLength"/>
        </rule>
    
        <rule ref="rulesets/codesize.xml/ExcessiveMethodLength">
            <properties>
                <property name="ignore-whitespace" value="true" />
                <property name="minimum" value="100" />
            </properties>
        </rule>
    
        <rule ref="rulesets/codesize.xml/ExcessiveClassLength">
            <properties>
                <property name="minimum" value="700" />
            </properties>
        </rule>
    
        <rule ref="rulesets/namingrules.xml/ShortVariable">
            <properties>
                <property name="minimum" value="1" />
            </properties>
        </rule>
    </ruleset>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 2019-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多