keboola/juicer

View on GitHub
src/Pagination/ScrollerFactory.php

Summary

Maintainability
A
2 hrs
Test Coverage
A
100%

Avoid too many return statements within this method.
Open

                return new CursorScroller($config, $logger);
Severity: Major
Found in src/Pagination/ScrollerFactory.php - About 30 mins to fix

    Avoid too many return statements within this method.
    Open

                    return new MultipleScroller($config, $logger);
    Severity: Major
    Found in src/Pagination/ScrollerFactory.php - About 30 mins to fix

      Avoid too many return statements within this method.
      Open

                      return new ZendeskResponseUrlScroller($config, $logger);
      Severity: Major
      Found in src/Pagination/ScrollerFactory.php - About 30 mins to fix

        Avoid too many return statements within this method.
        Open

                        return new PageScroller($config, $logger);
        Severity: Major
        Found in src/Pagination/ScrollerFactory.php - About 30 mins to fix

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

              private static function createScroller(array $config, LoggerInterface $logger): ScrollerInterface
              {
                  if (empty($config['method'])) {
                      return new NoScroller();
                  }
          Severity: Minor
          Found in src/Pagination/ScrollerFactory.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 class ScrollerFactory has a coupling between objects value of 15. Consider to reduce the number of dependencies under 13.
          Open

          class ScrollerFactory
          {
              public static function getScroller(array $config, ?LoggerInterface $logger = null): ScrollerInterface
              {
                  $scroller = self::createScroller($config, $logger ?? new NullLogger);
          Severity: Minor
          Found in src/Pagination/ScrollerFactory.php by phpmd

          CouplingBetweenObjects

          Since: 1.1.0

          A class with too many dependencies has negative impacts on several quality aspects of a class. This includes quality criteria like stability, maintainability and understandability

          Example

          class Foo {
              /**
               * @var \foo\bar\X
               */
              private $x = null;
          
              /**
               * @var \foo\bar\Y
               */
              private $y = null;
          
              /**
               * @var \foo\bar\Z
               */
              private $z = null;
          
              public function setFoo(\Foo $foo) {}
              public function setBar(\Bar $bar) {}
              public function setBaz(\Baz $baz) {}
          
              /**
               * @return \SplObjectStorage
               * @throws \OutOfRangeException
               * @throws \InvalidArgumentException
               * @throws \ErrorException
               */
              public function process(\Iterator $it) {}
          
              // ...
          }

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

          There are no issues that match your filters.

          Category
          Status