.phan/plugins/PHPDocRedundantPlugin.php

Summary

Maintainability
D
2 days
Test Coverage

Function isRedundantFunctionComment has a Cognitive Complexity of 37 (exceeds 5 allowed). Consider refactoring.
Open

    private static function isRedundantFunctionComment(FunctionInterface $method, string $doc_comment): bool
    {
        $lines = explode("\n", $doc_comment);
        foreach ($lines as $line) {
            $line = trim($line, " \r\n\t*/");
Severity: Minor
Found in .phan/plugins/PHPDocRedundantPlugin.php - About 5 hrs to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function checkIsRedundantReturn has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
Open

    private static function checkIsRedundantReturn(CodeBase $code_base, FunctionInterface $method, string $doc_comment): void
    {
        if (strpos($doc_comment, '@return') === false) {
            return;
        }
Severity: Minor
Found in .phan/plugins/PHPDocRedundantPlugin.php - About 2 hrs to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Method isRedundantFunctionComment has 51 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    private static function isRedundantFunctionComment(FunctionInterface $method, string $doc_comment): bool
    {
        $lines = explode("\n", $doc_comment);
        foreach ($lines as $line) {
            $line = trim($line, " \r\n\t*/");
Severity: Major
Found in .phan/plugins/PHPDocRedundantPlugin.php - About 2 hrs to fix

    Method checkIsRedundantReturn has 44 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

        private static function checkIsRedundantReturn(CodeBase $code_base, FunctionInterface $method, string $doc_comment): void
        {
            if (strpos($doc_comment, '@return') === false) {
                return;
            }
    Severity: Minor
    Found in .phan/plugins/PHPDocRedundantPlugin.php - About 1 hr to fix

      Method analyzeFunctionLike has 37 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          private static function analyzeFunctionLike(CodeBase $code_base, FunctionInterface $method): void
          {
              if (Phan::isExcludedAnalysisFile($method->getContext()->getFile())) {
                  // This has no side effects, so we can skip files that don't need to be analyzed
                  return;
      Severity: Minor
      Found in .phan/plugins/PHPDocRedundantPlugin.php - About 1 hr to fix

        Function analyzeFunctionLike has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
        Open

            private static function analyzeFunctionLike(CodeBase $code_base, FunctionInterface $method): void
            {
                if (Phan::isExcludedAnalysisFile($method->getContext()->getFile())) {
                    // This has no side effects, so we can skip files that don't need to be analyzed
                    return;
        Severity: Minor
        Found in .phan/plugins/PHPDocRedundantPlugin.php - About 35 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Avoid too many return statements within this method.
        Open

                        return;
        Severity: Major
        Found in .phan/plugins/PHPDocRedundantPlugin.php - About 30 mins to fix

          Avoid too many return statements within this method.
          Open

                          return false;
          Severity: Major
          Found in .phan/plugins/PHPDocRedundantPlugin.php - About 30 mins to fix

            Avoid too many return statements within this method.
            Open

                            return false;
            Severity: Major
            Found in .phan/plugins/PHPDocRedundantPlugin.php - About 30 mins to fix

              Avoid too many return statements within this method.
              Open

                          return;
              Severity: Major
              Found in .phan/plugins/PHPDocRedundantPlugin.php - About 30 mins to fix

                Avoid too many return statements within this method.
                Open

                            return false;
                Severity: Major
                Found in .phan/plugins/PHPDocRedundantPlugin.php - About 30 mins to fix

                  Avoid too many return statements within this method.
                  Open

                              return false;
                  Severity: Major
                  Found in .phan/plugins/PHPDocRedundantPlugin.php - About 30 mins to fix

                    Avoid too many return statements within this method.
                    Open

                                    return false;
                    Severity: Major
                    Found in .phan/plugins/PHPDocRedundantPlugin.php - About 30 mins to fix

                      Avoid too many return statements within this method.
                      Open

                              return true;
                      Severity: Major
                      Found in .phan/plugins/PHPDocRedundantPlugin.php - About 30 mins to fix

                        Avoid too many return statements within this method.
                        Open

                                    return false;
                        Severity: Major
                        Found in .phan/plugins/PHPDocRedundantPlugin.php - About 30 mins to fix

                          Avoid too many return statements within this method.
                          Open

                                      return;
                          Severity: Major
                          Found in .phan/plugins/PHPDocRedundantPlugin.php - About 30 mins to fix

                            Avoid too many return statements within this method.
                            Open

                                            return;
                            Severity: Major
                            Found in .phan/plugins/PHPDocRedundantPlugin.php - About 30 mins to fix

                              Avoid too many return statements within this method.
                              Open

                                              return;
                              Severity: Major
                              Found in .phan/plugins/PHPDocRedundantPlugin.php - About 30 mins to fix

                                The method isRedundantFunctionComment() has an NPath complexity of 5904. The configured NPath complexity threshold is 200.
                                Open

                                    private static function isRedundantFunctionComment(FunctionInterface $method, string $doc_comment): bool
                                    {
                                        $lines = explode("\n", $doc_comment);
                                        foreach ($lines as $line) {
                                            $line = trim($line, " \r\n\t*/");

                                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 checkIsRedundantReturn() has an NPath complexity of 1056. The configured NPath complexity threshold is 200.
                                Open

                                    private static function checkIsRedundantReturn(CodeBase $code_base, FunctionInterface $method, string $doc_comment): void
                                    {
                                        if (strpos($doc_comment, '@return') === false) {
                                            return;
                                        }

                                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 isRedundantFunctionComment() has a Cyclomatic Complexity of 19. The configured cyclomatic complexity threshold is 10.
                                Open

                                    private static function isRedundantFunctionComment(FunctionInterface $method, string $doc_comment): bool
                                    {
                                        $lines = explode("\n", $doc_comment);
                                        foreach ($lines as $line) {
                                            $line = trim($line, " \r\n\t*/");

                                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

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

                                    private static function checkIsRedundantReturn(CodeBase $code_base, FunctionInterface $method, string $doc_comment): void
                                    {
                                        if (strpos($doc_comment, '@return') === false) {
                                            return;
                                        }

                                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

                                Constant RedundantClosureComment should be defined in uppercase
                                Open

                                    private const RedundantClosureComment = 'PhanPluginRedundantClosureComment';

                                ConstantNamingConventions

                                Since: 0.2

                                Class/Interface constant names should always be defined in uppercase.

                                Example

                                class Foo {
                                    const MY_NUM = 0; // ok
                                    const myTest = ""; // fail
                                }

                                Source https://phpmd.org/rules/naming.html#constantnamingconventions

                                Constant RedundantFunctionComment should be defined in uppercase
                                Open

                                    private const RedundantFunctionComment = 'PhanPluginRedundantFunctionComment';

                                ConstantNamingConventions

                                Since: 0.2

                                Class/Interface constant names should always be defined in uppercase.

                                Example

                                class Foo {
                                    const MY_NUM = 0; // ok
                                    const myTest = ""; // fail
                                }

                                Source https://phpmd.org/rules/naming.html#constantnamingconventions

                                Constant RedundantReturnComment should be defined in uppercase
                                Open

                                    private const RedundantReturnComment = 'PhanPluginRedundantReturnComment';

                                ConstantNamingConventions

                                Since: 0.2

                                Class/Interface constant names should always be defined in uppercase.

                                Example

                                class Foo {
                                    const MY_NUM = 0; // ok
                                    const myTest = ""; // fail
                                }

                                Source https://phpmd.org/rules/naming.html#constantnamingconventions

                                Constant RedundantMethodComment should be defined in uppercase
                                Open

                                    private const RedundantMethodComment = 'PhanPluginRedundantMethodComment';

                                ConstantNamingConventions

                                Since: 0.2

                                Class/Interface constant names should always be defined in uppercase.

                                Example

                                class Foo {
                                    const MY_NUM = 0; // ok
                                    const myTest = ""; // fail
                                }

                                Source https://phpmd.org/rules/naming.html#constantnamingconventions

                                There are no issues that match your filters.

                                Category
                                Status