codeformunich/Muenchen-Transparent

View on GitHub
protected/RISParser/BAMitgliederParser.php

Summary

Maintainability
A
3 hrs
Test Coverage

Method parse has 85 lines of code (exceeds 30 allowed). Consider refactoring.
Open

    public function parse($ba_nr): mixed
    {
        $ba_nr = IntVal($ba_nr);

        if (SITE_CALL_MODE != "cron") echo "- BA $ba_nr\n";
Severity: Major
Found in protected/RISParser/BAMitgliederParser.php - About 3 hrs to fix

    The method parse() has 105 lines of code. Current threshold is set to 100. Avoid really long methods.
    Open

        public function parse($ba_nr): mixed
        {
            $ba_nr = IntVal($ba_nr);
    
            if (SITE_CALL_MODE != "cron") echo "- BA $ba_nr\n";

    The method parse() has an NPath complexity of 4338. The configured NPath complexity threshold is 200.
    Open

        public function parse($ba_nr): mixed
        {
            $ba_nr = IntVal($ba_nr);
    
            if (SITE_CALL_MODE != "cron") echo "- BA $ba_nr\n";

    NPathComplexity

    Since: 0.1

    The NPath complexity of a method is the number of acyclic execution paths through that method. A threshold of 200 is generally considered the point where measures should be taken to reduce complexity.

    Example

    class Foo {
        function bar() {
            // lots of complicated code
        }
    }

    Source https://phpmd.org/rules/codesize.html#npathcomplexity

    The method parse() has a Cyclomatic Complexity of 17. The configured cyclomatic complexity threshold is 10.
    Open

        public function parse($ba_nr): mixed
        {
            $ba_nr = IntVal($ba_nr);
    
            if (SITE_CALL_MODE != "cron") echo "- BA $ba_nr\n";

    CyclomaticComplexity

    Since: 0.1

    Complexity is determined by the number of decision points in a method plus one for the method entry. The decision points are 'if', 'while', 'for', and 'case labels'. Generally, 1-4 is low complexity, 5-7 indicates moderate complexity, 8-10 is high complexity, and 11+ is very high complexity.

    Example

    // Cyclomatic Complexity = 11
    class Foo {
    1   public function example() {
    2       if ($a == $b) {
    3           if ($a1 == $b1) {
                    fiddle();
    4           } elseif ($a2 == $b2) {
                    fiddle();
                } else {
                    fiddle();
                }
    5       } elseif ($c == $d) {
    6           while ($c == $d) {
                    fiddle();
                }
    7        } elseif ($e == $f) {
    8           for ($n = 0; $n < $h; $n++) {
                    fiddle();
                }
            } else {
                switch ($z) {
    9               case 1:
                        fiddle();
                        break;
    10              case 2:
                        fiddle();
                        break;
    11              case 3:
                        fiddle();
                        break;
                    default:
                        fiddle();
                        break;
                }
            }
        }
    }

    Source https://phpmd.org/rules/codesize.html#cyclomaticcomplexity

    Avoid unused parameters such as '$first'.
    Open

        public function parseSeite(int $seite, int $first): array

    UnusedFormalParameter

    Since: 0.2

    Avoid passing parameters to methods or constructors and then not using those parameters.

    Example

    class Foo
    {
        private function bar($howdy)
        {
            // $howdy is not used
        }
    }

    Source https://phpmd.org/rules/unusedcode.html#unusedformalparameter

    Avoid unused private methods such as 'parseBaGremienListe'.
    Open

        private function parseBaGremienListe(string $url)
        {
            $html = RISTools::load_file(RIS_BA_BASE_URL . "ba_gremien.jsp?selWahlperiode=3184784&selBA=" . $url);
    
        }

    UnusedPrivateMethod

    Since: 0.2

    Unused Private Method detects when a private method is declared but is unused.

    Example

    class Something
    {
        private function foo() {} // unused
    }

    Source https://phpmd.org/rules/unusedcode.html#unusedprivatemethod

    Avoid unused local variables such as '$html'.
    Open

            $html = RISTools::load_file(RIS_BA_BASE_URL . "ba_gremien.jsp?selWahlperiode=3184784&selBA=" . $url);

    UnusedLocalVariable

    Since: 0.2

    Detects when a local variable is declared and/or assigned, but not used.

    Example

    class Foo {
        public function doSomething()
        {
            $i = 5; // Unused
        }
    }

    Source https://phpmd.org/rules/unusedcode.html#unusedlocalvariable

    Avoid unused parameters such as '$seite'.
    Open

        public function parseSeite(int $seite, int $first): array

    UnusedFormalParameter

    Since: 0.2

    Avoid passing parameters to methods or constructors and then not using those parameters.

    Example

    class Foo
    {
        private function bar($howdy)
        {
            // $howdy is not used
        }
    }

    Source https://phpmd.org/rules/unusedcode.html#unusedformalparameter

    Avoid using count() function in for loops.
    Open

            for ($i = 0; $i < count($matches[1]); $i++) {
                $fraktion_name = trim(html_entity_decode($matches["fraktion"][$i]));
                $name          = str_replace("&nbsp;", " ", $matches["name"][$i]);
                $name          = trim(str_replace(["Herr", "Frau"], [" ", " "], $name));
    
    

    CountInLoopExpression

    Since: 2.7.0

    Using count/sizeof in loops expressions is considered bad practice and is a potential source of many bugs, especially when the loop manipulates an array, as count happens on each iteration.

    Example

    class Foo {
    
      public function bar()
      {
        $array = array();
    
        for ($i = 0; count($array); $i++) {
          // ...
        }
      }
    }

    Source https://phpmd.org/rules/design.html#countinloopexpression

    There are no issues that match your filters.

    Category
    Status