hnhdigital-os/laravel-navigation-builder

View on GitHub
src/Item.php

Summary

Maintainability
F
5 days
Test Coverage

Function __call has a Cognitive Complexity of 64 (exceeds 5 allowed). Consider refactoring.
Open

    public function __call(string $name, array $arguments)
    {
        $original_method_name = Str::snake($name);
        preg_match('/^([a-z]+)_([a-z_]+)_([a-z]+)$/', $original_method_name, $matches);

Severity: Minor
Found in src/Item.php - About 1 day 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

File Item.php has 463 lines of code (exceeds 250 allowed). Consider refactoring.
Open

<?php

/*
 * This file is part of Laravel Navigation Builder.
 *
Severity: Minor
Found in src/Item.php - About 7 hrs to fix

    Item has 31 functions (exceeds 20 allowed). Consider refactoring.
    Open

    class Item
    {
        /**
         * No link specified.
         *
    Severity: Minor
    Found in src/Item.php - About 3 hrs to fix

      Function render has a Cognitive Complexity of 26 (exceeds 5 allowed). Consider refactoring.
      Open

          public function render($menu_level = 0)
          {
              static::activateIfItemIsActive($this);
      
              // Not authorized for this menu.
      Severity: Minor
      Found in src/Item.php - About 3 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 __call has 85 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          public function __call(string $name, array $arguments)
          {
              $original_method_name = Str::snake($name);
              preg_match('/^([a-z]+)_([a-z_]+)_([a-z]+)$/', $original_method_name, $matches);
      
      
      Severity: Major
      Found in src/Item.php - About 3 hrs to fix

        The class Item has 22 public methods. Consider refactoring Item to keep number of public methods under 10.
        Open

        class Item
        {
            /**
             * No link specified.
             *
        Severity: Minor
        Found in src/Item.php by phpmd

        TooManyPublicMethods

        Since: 0.1

        A class with too many public methods is probably a good suspect for refactoring, in order to reduce its complexity and find a way to have more fine grained objects.

        By default it ignores methods starting with 'get' or 'set'.

        Example

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

        The class Item has an overall complexity of 132 which is very high. The configured complexity threshold is 50.
        Open

        class Item
        {
            /**
             * No link specified.
             *
        Severity: Minor
        Found in src/Item.php by phpmd

        Method render has 75 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            public function render($menu_level = 0)
            {
                static::activateIfItemIsActive($this);
        
                // Not authorized for this menu.
        Severity: Major
        Found in src/Item.php - About 3 hrs to fix

          Function activateIfItemIsActive has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
          Open

              public static function activateIfItemIsActive($item)
              {
                  // No menu items provided.
                  if (empty($list = $item->getActiveIfItemIsActiveOption())) {
                      return false;
          Severity: Minor
          Found in src/Item.php - About 1 hr 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

          Consider simplifying this complex logical expression.
          Open

                          if (($action == 'add' || $action == 'remove' || $action == 'append' || $action == 'prepend')
                              && ($key == 'item' || $key == 'container' || $key == 'link') && $method_name == 'attribute') {
                              $input_value = Arr::get($arguments, 1, '');
                              $current_value = Arr::get($this->{$key.'_'.$method_name}, Arr::get($arguments, 0, null), '');
          
          
          Severity: Critical
          Found in src/Item.php - About 1 hr to fix

            Method renderDropdown has 33 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                public function renderDropdown()
                {
                    $menu_source = Arr::get($this->option, 'dropdown_source', null);
                    $config = Arr::get($this->option, 'dropdown_config', null);
            
            
            Severity: Minor
            Found in src/Item.php - About 1 hr to fix

              Method activateIfItemIsActive has 27 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                  public static function activateIfItemIsActive($item)
                  {
                      // No menu items provided.
                      if (empty($list = $item->getActiveIfItemIsActiveOption())) {
                          return false;
              Severity: Minor
              Found in src/Item.php - About 1 hr to fix

                Avoid deeply nested control flow statements.
                Open

                                            if (($index = array_search($input_value, $current_value_array)) !== false) {
                                                unset($current_value_array[$index]);
                                            }
                Severity: Major
                Found in src/Item.php - About 45 mins to fix

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

                      public function renderDropdown()
                      {
                          $menu_source = Arr::get($this->option, 'dropdown_source', null);
                          $config = Arr::get($this->option, 'dropdown_config', null);
                  
                  
                  Severity: Minor
                  Found in src/Item.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

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

                      public function checkItemIsActive($item)
                      {
                          if ($this->getActive()) {
                              return true;
                          }
                  Severity: Minor
                  Found in src/Item.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 $this;
                  Severity: Major
                  Found in src/Item.php - About 30 mins to fix

                    Avoid too many return statements within this method.
                    Open

                                return '';
                    Severity: Major
                    Found in src/Item.php - About 30 mins to fix

                      Avoid too many return statements within this method.
                      Open

                              return $this;
                      Severity: Major
                      Found in src/Item.php - About 30 mins to fix

                        Avoid too many return statements within this method.
                        Open

                                    return $this;
                        Severity: Major
                        Found in src/Item.php - About 30 mins to fix

                          Avoid too many return statements within this method.
                          Open

                                  return Html::$item_tag($before_tag_html.$html.$after_tag_html)->addAttributes($this->item_attribute)->s();
                          Severity: Major
                          Found in src/Item.php - About 30 mins to fix

                            Function generateUrl has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                            Open

                                private function generateUrl()
                                {
                                    $url = '';
                            
                                    // Create the URL.
                            Severity: Minor
                            Found in src/Item.php - About 25 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

                            The method __call() has an NPath complexity of 8904. The configured NPath complexity threshold is 200.
                            Open

                                public function __call(string $name, array $arguments)
                                {
                                    $original_method_name = Str::snake($name);
                                    preg_match('/^([a-z]+)_([a-z_]+)_([a-z]+)$/', $original_method_name, $matches);
                            
                            
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            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 render() has 119 lines of code. Current threshold is set to 100. Avoid really long methods.
                            Open

                                public function render($menu_level = 0)
                                {
                                    static::activateIfItemIsActive($this);
                            
                                    // Not authorized for this menu.
                            Severity: Minor
                            Found in src/Item.php by phpmd

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

                                public function __call(string $name, array $arguments)
                                {
                                    $original_method_name = Str::snake($name);
                                    preg_match('/^([a-z]+)_([a-z_]+)_([a-z]+)$/', $original_method_name, $matches);
                            
                            
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            The method activateIfItemIsActive() has an NPath complexity of 252. The configured NPath complexity threshold is 200.
                            Open

                                public static function activateIfItemIsActive($item)
                                {
                                    // No menu items provided.
                                    if (empty($list = $item->getActiveIfItemIsActiveOption())) {
                                        return false;
                            Severity: Minor
                            Found in src/Item.php by phpmd

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

                                public function render($menu_level = 0)
                                {
                                    static::activateIfItemIsActive($this);
                            
                                    // Not authorized for this menu.
                            Severity: Minor
                            Found in src/Item.php by phpmd

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

                                public static function activateIfItemIsActive($item)
                                {
                                    // No menu items provided.
                                    if (empty($list = $item->getActiveIfItemIsActiveOption())) {
                                        return false;
                            Severity: Minor
                            Found in src/Item.php by phpmd

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

                                public function __call(string $name, array $arguments)
                                {
                                    $original_method_name = Str::snake($name);
                                    preg_match('/^([a-z]+)_([a-z_]+)_([a-z]+)$/', $original_method_name, $matches);
                            
                            
                            Severity: Minor
                            Found in src/Item.php by phpmd

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

                                public function render($menu_level = 0)
                                {
                                    static::activateIfItemIsActive($this);
                            
                                    // Not authorized for this menu.
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            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 children has a boolean flag argument $depth, which is a certain sign of a Single Responsibility Principle violation.
                            Open

                                public function children($depth = false)
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            BooleanArgumentFlag

                            Since: 1.4.0

                            A boolean flag argument is a reliable indicator for a violation of the Single Responsibility Principle (SRP). You can fix this problem by extracting the logic in the boolean flag into its own class or method.

                            Example

                            class Foo {
                                public function bar($flag = true) {
                                }
                            }

                            Source https://phpmd.org/rules/cleancode.html#booleanargumentflag

                            The method setActive has a boolean flag argument $update_parents, which is a certain sign of a Single Responsibility Principle violation.
                            Open

                                public function setActive($active = true, $update_parents = true)
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            BooleanArgumentFlag

                            Since: 1.4.0

                            A boolean flag argument is a reliable indicator for a violation of the Single Responsibility Principle (SRP). You can fix this problem by extracting the logic in the boolean flag into its own class or method.

                            Example

                            class Foo {
                                public function bar($flag = true) {
                                }
                            }

                            Source https://phpmd.org/rules/cleancode.html#booleanargumentflag

                            The method can has a boolean flag argument $user, which is a certain sign of a Single Responsibility Principle violation.
                            Open

                                public function can($ability, $model, $user = false)
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            BooleanArgumentFlag

                            Since: 1.4.0

                            A boolean flag argument is a reliable indicator for a violation of the Single Responsibility Principle (SRP). You can fix this problem by extracting the logic in the boolean flag into its own class or method.

                            Example

                            class Foo {
                                public function bar($flag = true) {
                                }
                            }

                            Source https://phpmd.org/rules/cleancode.html#booleanargumentflag

                            The method checkActive has a boolean flag argument $update_parents, which is a certain sign of a Single Responsibility Principle violation.
                            Open

                                private function checkActive($update_parents = true)
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            BooleanArgumentFlag

                            Since: 1.4.0

                            A boolean flag argument is a reliable indicator for a violation of the Single Responsibility Principle (SRP). You can fix this problem by extracting the logic in the boolean flag into its own class or method.

                            Example

                            class Foo {
                                public function bar($flag = true) {
                                }
                            }

                            Source https://phpmd.org/rules/cleancode.html#booleanargumentflag

                            The method setActive has a boolean flag argument $active, which is a certain sign of a Single Responsibility Principle violation.
                            Open

                                public function setActive($active = true, $update_parents = true)
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            BooleanArgumentFlag

                            Since: 1.4.0

                            A boolean flag argument is a reliable indicator for a violation of the Single Responsibility Principle (SRP). You can fix this problem by extracting the logic in the boolean flag into its own class or method.

                            Example

                            class Foo {
                                public function bar($flag = true) {
                                }
                            }

                            Source https://phpmd.org/rules/cleancode.html#booleanargumentflag

                            The method __call uses an else expression. Else clauses are basically not necessary and you can simplify the code by not using them.
                            Open

                                                } else {
                                                    unset($this->{$key.'_'.$method_name}[Arr::get($arguments, 0, null)]);
                                                }
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            ElseExpression

                            Since: 1.4.0

                            An if expression with an else branch is basically not necessary. You can rewrite the conditions in a way that the else clause is not necessary and the code becomes simpler to read. To achieve this, use early return statements, though you may need to split the code it several smaller methods. For very simple assignments you could also use the ternary operations.

                            Example

                            class Foo
                            {
                                public function bar($flag)
                                {
                                    if ($flag) {
                                        // one branch
                                    } else {
                                        // another branch
                                    }
                                }
                            }

                            Source https://phpmd.org/rules/cleancode.html#elseexpression

                            The method __call uses an else expression. Else clauses are basically not necessary and you can simplify the code by not using them.
                            Open

                                                    } else {
                                                        $default = $action == 'get' ? false : true;
                                                        $data = Arr::get($arguments, 0, $default);
                                                    }
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            ElseExpression

                            Since: 1.4.0

                            An if expression with an else branch is basically not necessary. You can rewrite the conditions in a way that the else clause is not necessary and the code becomes simpler to read. To achieve this, use early return statements, though you may need to split the code it several smaller methods. For very simple assignments you could also use the ternary operations.

                            Example

                            class Foo
                            {
                                public function bar($flag)
                                {
                                    if ($flag) {
                                        // one branch
                                    } else {
                                        // another branch
                                    }
                                }
                            }

                            Source https://phpmd.org/rules/cleancode.html#elseexpression

                            Avoid assigning values to variables in if clauses and the like (line '468', column '19').
                            Open

                                public static function activateIfItemIsActive($item)
                                {
                                    // No menu items provided.
                                    if (empty($list = $item->getActiveIfItemIsActiveOption())) {
                                        return false;
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            IfStatementAssignment

                            Since: 2.7.0

                            Assignments in if clauses and the like are considered a code smell. Assignments in PHP return the right operand as their result. In many cases, this is an expected behavior, but can lead to many difficult to spot bugs, especially when the right operand could result in zero, null or an empty string and the like.

                            Example

                            class Foo
                            {
                                public function bar($flag)
                                {
                                    if ($foo = 'bar') { // possible typo
                                        // ...
                                    }
                                    if ($baz = 0) { // always false
                                        // ...
                                    }
                                }
                            }

                            Source http://phpmd.org/rules/cleancode.html#ifstatementassignment

                            Avoid assigning values to variables in if clauses and the like (line '526', column '19').
                            Open

                                public function checkItemIsActive($item)
                                {
                                    if ($this->getActive()) {
                                        return true;
                                    }
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            IfStatementAssignment

                            Since: 2.7.0

                            Assignments in if clauses and the like are considered a code smell. Assignments in PHP return the right operand as their result. In many cases, this is an expected behavior, but can lead to many difficult to spot bugs, especially when the right operand could result in zero, null or an empty string and the like.

                            Example

                            class Foo
                            {
                                public function bar($flag)
                                {
                                    if ($foo = 'bar') { // possible typo
                                        // ...
                                    }
                                    if ($baz = 0) { // always false
                                        // ...
                                    }
                                }
                            }

                            Source http://phpmd.org/rules/cleancode.html#ifstatementassignment

                            Avoid assigning values to variables in if clauses and the like (line '822', column '34').
                            Open

                                public function __call(string $name, array $arguments)
                                {
                                    $original_method_name = Str::snake($name);
                                    preg_match('/^([a-z]+)_([a-z_]+)_([a-z]+)$/', $original_method_name, $matches);
                            
                            
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            IfStatementAssignment

                            Since: 2.7.0

                            Assignments in if clauses and the like are considered a code smell. Assignments in PHP return the right operand as their result. In many cases, this is an expected behavior, but can lead to many difficult to spot bugs, especially when the right operand could result in zero, null or an empty string and the like.

                            Example

                            class Foo
                            {
                                public function bar($flag)
                                {
                                    if ($foo = 'bar') { // possible typo
                                        // ...
                                    }
                                    if ($baz = 0) { // always false
                                        // ...
                                    }
                                }
                            }

                            Source http://phpmd.org/rules/cleancode.html#ifstatementassignment

                            The method __call uses an else expression. Else clauses are basically not necessary and you can simplify the code by not using them.
                            Open

                                    } else {
                                        [$action, $method_name, $key] = array_pad(explode('_', $original_method_name, 3), 3, '');
                                    }
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            ElseExpression

                            Since: 1.4.0

                            An if expression with an else branch is basically not necessary. You can rewrite the conditions in a way that the else clause is not necessary and the code becomes simpler to read. To achieve this, use early return statements, though you may need to split the code it several smaller methods. For very simple assignments you could also use the ternary operations.

                            Example

                            class Foo
                            {
                                public function bar($flag)
                                {
                                    if ($flag) {
                                        // one branch
                                    } else {
                                        // another branch
                                    }
                                }
                            }

                            Source https://phpmd.org/rules/cleancode.html#elseexpression

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

                                        $allowed_keys = ['item', 'link', 'container', 'link'];
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            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 variables with short names like $id. Configured minimum length is 3.
                            Open

                                public $id = '';
                            Severity: Minor
                            Found in src/Item.php by phpmd

                            ShortVariable

                            Since: 0.2

                            Detects when a field, local, or parameter has a very short name.

                            Example

                            class Something {
                                private $q = 15; // VIOLATION - Field
                                public static function main( array $as ) { // VIOLATION - Formal
                                    $r = 20 + $this->q; // VIOLATION - Local
                                    for (int $i = 0; $i < 10; $i++) { // Not a Violation (inside FOR)
                                        $r += $this->q;
                                    }
                                }
                            }

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

                            There are no issues that match your filters.

                            Category
                            Status