iranianpep/code-jetter

View on GitHub
core/ErrorHandler.php

Summary

Maintainability
D
1 day
Test Coverage

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

class ErrorHandler
{
    private $configs;
    private $logger;

Severity: Minor
Found in core/ErrorHandler.php by phpmd

ErrorHandler has 23 functions (exceeds 20 allowed). Consider refactoring.
Open

class ErrorHandler
{
    private $configs;
    private $logger;

Severity: Minor
Found in core/ErrorHandler.php - About 2 hrs to fix

    File ErrorHandler.php has 268 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    <?php
    
    namespace CodeJetter\core;
    
    use Monolog\Formatter\LineFormatter;
    Severity: Minor
    Found in core/ErrorHandler.php - About 2 hrs to fix

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

          private function isInBlacklist($errorMessage, $errorFile)
          {
              $configs = $this->getConfigs();
      
              if ($configs['blacklist']['inOperation'] !== true) {
      Severity: Minor
      Found in core/ErrorHandler.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

      Method pushMonologHandler has 45 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          private function pushMonologHandler(Logger $logger, $handlerKey, $handlerConfig = [])
          {
              $activeHandlers = [];
      
              switch ($handlerKey) {
      Severity: Minor
      Found in core/ErrorHandler.php - About 1 hr to fix

        Function pushMonologHandler has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
        Open

            private function pushMonologHandler(Logger $logger, $handlerKey, $handlerConfig = [])
            {
                $activeHandlers = [];
        
                switch ($handlerKey) {
        Severity: Minor
        Found in core/ErrorHandler.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

        Method logMessage has 31 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            private function logMessage($level, $message, $context = [])
            {
                if ($this->getConfigs()['inOperation'] !== true) {
                    return false;
                }
        Severity: Minor
        Found in core/ErrorHandler.php - About 1 hr to fix

          Function logMessage has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
          Open

              private function logMessage($level, $message, $context = [])
              {
                  if ($this->getConfigs()['inOperation'] !== true) {
                      return false;
                  }
          Severity: Minor
          Found in core/ErrorHandler.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

          Avoid too many return statements within this method.
          Open

                  return false;
          Severity: Major
          Found in core/ErrorHandler.php - About 30 mins to fix

            Avoid too many return statements within this method.
            Open

                    return true;
            Severity: Major
            Found in core/ErrorHandler.php - About 30 mins to fix

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

                  private function pushMonologHandler(Logger $logger, $handlerKey, $handlerConfig = [])
                  {
                      $activeHandlers = [];
              
                      switch ($handlerKey) {
              Severity: Minor
              Found in core/ErrorHandler.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 isInBlacklist() has a Cyclomatic Complexity of 10. The configured cyclomatic complexity threshold is 10.
              Open

                  private function isInBlacklist($errorMessage, $errorFile)
                  {
                      $configs = $this->getConfigs();
              
                      if ($configs['blacklist']['inOperation'] !== true) {
              Severity: Minor
              Found in core/ErrorHandler.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 logMessage() has a Cyclomatic Complexity of 10. The configured cyclomatic complexity threshold is 10.
              Open

                  private function logMessage($level, $message, $context = [])
                  {
                      if ($this->getConfigs()['inOperation'] !== true) {
                          return false;
                      }
              Severity: Minor
              Found in core/ErrorHandler.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

              Missing class import via use statement (line '92', column '31').
              Open

                                  throw new \Exception('MongoDB details are not provided');
              Severity: Minor
              Found in core/ErrorHandler.php by phpmd

              MissingImport

              Since: 2.7.0

              Importing all external classes in a file through use statements makes them clearly visible.

              Example

              function make() {
                  return new \stdClass();
              }

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

              Missing class import via use statement (line '96', column '25').
              Open

                                  new \MongoClient($handlerConfig['server']),
              Severity: Minor
              Found in core/ErrorHandler.php by phpmd

              MissingImport

              Since: 2.7.0

              Importing all external classes in a file through use statements makes them clearly visible.

              Example

              function make() {
                  return new \stdClass();
              }

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

              Missing class import via use statement (line '149', column '23').
              Open

                          throw new \Exception('Monolog must have at least one handler');
              Severity: Minor
              Found in core/ErrorHandler.php by phpmd

              MissingImport

              Since: 2.7.0

              Importing all external classes in a file through use statements makes them clearly visible.

              Example

              function make() {
                  return new \stdClass();
              }

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

              Missing class import via use statement (line '77', column '31').
              Open

                                  throw new \Exception('Token cannot be empty for Hipchat handler');
              Severity: Minor
              Found in core/ErrorHandler.php by phpmd

              MissingImport

              Since: 2.7.0

              Importing all external classes in a file through use statements makes them clearly visible.

              Example

              function make() {
                  return new \stdClass();
              }

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

              Missing class import via use statement (line '116', column '31').
              Open

                                  throw new \Exception('File path is empty');
              Severity: Minor
              Found in core/ErrorHandler.php by phpmd

              MissingImport

              Since: 2.7.0

              Importing all external classes in a file through use statements makes them clearly visible.

              Example

              function make() {
                  return new \stdClass();
              }

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

              Missing class import via use statement (line '81', column '31').
              Open

                                  throw new \Exception('Room cannot be empty for Hipchat handler');
              Severity: Minor
              Found in core/ErrorHandler.php by phpmd

              MissingImport

              Since: 2.7.0

              Importing all external classes in a file through use statements makes them clearly visible.

              Example

              function make() {
                  return new \stdClass();
              }

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

              Missing class import via use statement (line '464', column '27').
              Open

                              throw new \Exception("'{$level}' is invalid log level");
              Severity: Minor
              Found in core/ErrorHandler.php by phpmd

              MissingImport

              Since: 2.7.0

              Importing all external classes in a file through use statements makes them clearly visible.

              Example

              function make() {
                  return new \stdClass();
              }

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

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

                          } else {
                              // Execute PHP internal error handler as well
                              return false;
                          }
              Severity: Minor
              Found in core/ErrorHandler.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 parameters such as '$errorFile'.
              Open

                  private function extractComponentName($errorFile)
              Severity: Minor
              Found in core/ErrorHandler.php by phpmd

              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

              There are no issues that match your filters.

              Category
              Status