miquido/data-structure

View on GitHub
src/Value/Value.php

Summary

Maintainability
A
0 mins
Test Coverage

The class Value has 12 public methods. Consider refactoring Value to keep number of public methods under 10.
Open

final class Value implements ValueInterface
{
    private $value;

    public static function create($rawValue): ValueInterface
Severity: Minor
Found in src/Value/Value.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 Value has a coupling between objects value of 14. Consider to reduce the number of dependencies under 13.
Open

final class Value implements ValueInterface
{
    private $value;

    public static function create($rawValue): ValueInterface
Severity: Minor
Found in src/Value/Value.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

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

    public function int(bool $forceCast = true): int
Severity: Minor
Found in src/Value/Value.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 toCollectionValue has a boolean flag argument $castScalar, which is a certain sign of a Single Responsibility Principle violation.
Open

    public function toCollectionValue(bool $castScalar = true): CollectionValueInterface
Severity: Minor
Found in src/Value/Value.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 bool has a boolean flag argument $parseString, which is a certain sign of a Single Responsibility Principle violation.
Open

    public function bool(bool $parseString = true): bool
Severity: Minor
Found in src/Value/Value.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

Rename "$value" which has the same name as the field declared at line 22.
Open

        $value = $castScalar && \is_scalar($this->value) ? [$this->value] : $this->value;
Severity: Major
Found in src/Value/Value.php by sonar-php

Shadowing fields with a local variable is a bad practice that reduces code readability: it makes it confusing to know whether the field or the variable is being used.

Noncompliant Code Example

class Foo {
  public $myField;

  public function doSomething() {
    $myField = 0;
    ...
  }
}

See

There are no issues that match your filters.

Category
Status