src/Pagination/ScrollerFactory.php
Avoid too many return
statements within this method. Open
Open
return new CursorScroller($config, $logger);
Avoid too many return
statements within this method. Open
Open
return new MultipleScroller($config, $logger);
Avoid too many return
statements within this method. Open
Open
return new ZendeskResponseUrlScroller($config, $logger);
Avoid too many return
statements within this method. Open
Open
return new PageScroller($config, $logger);
The method createScroller() has a Cyclomatic Complexity of 10. The configured cyclomatic complexity threshold is 10. Open
Open
private static function createScroller(array $config, LoggerInterface $logger): ScrollerInterface
{
if (empty($config['method'])) {
return new NoScroller();
}
- Read upRead up
- Exclude checks
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
Open
class ScrollerFactory
{
public static function getScroller(array $config, ?LoggerInterface $logger = null): ScrollerInterface
{
$scroller = self::createScroller($config, $logger ?? new NullLogger);
- Read upRead up
- Exclude checks
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) {}
// ...
}