bkdotcom/PHPDebugConsole

View on GitHub
src/Debug/Dump/AbstractValue.php

Summary

Maintainability
A
2 hrs
Test Coverage
A
100%

AbstractValue has 22 functions (exceeds 20 allowed). Consider refactoring.
Open

abstract class AbstractValue extends AbstractComponent
{
    /** @var Debug */
    public $debug;

Severity: Minor
Found in src/Debug/Dump/AbstractValue.php - About 2 hrs to fix

    Class "AbstractValue" has 22 methods, which is greater than 20 authorized. Split it into smaller classes.
    Open

    abstract class AbstractValue extends AbstractComponent
    Severity: Major
    Found in src/Debug/Dump/AbstractValue.php by sonar-php

    A class that grows too much tends to aggregate too many responsibilities and inevitably becomes harder to understand and therefore to maintain. Above a specific threshold, it is strongly advised to refactor the class into smaller ones which focus on well defined topics.

    Define a constant instead of duplicating this literal "operator" 3 times.
    Open

            $parts = \array_fill_keys(['classname', 'name', 'namespace', 'operator'], '');
    Severity: Critical
    Found in src/Debug/Dump/AbstractValue.php by sonar-php

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    function run() {
      prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
      execute('action1');
      release('action1');
    }
    

    Compliant Solution

    ACTION_1 = 'action1';
    
    function run() {
      prepare(ACTION_1);
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Define a constant instead of duplicating this literal "classname" 5 times.
    Open

            $parts = \array_fill_keys(['classname', 'name', 'namespace', 'operator'], '');
    Severity: Critical
    Found in src/Debug/Dump/AbstractValue.php by sonar-php

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    function run() {
      prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
      execute('action1');
      release('action1');
    }
    

    Compliant Solution

    ACTION_1 = 'action1';
    
    function run() {
      prepare(ACTION_1);
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Define a constant instead of duplicating this literal "typeMore" 9 times.
    Open

            if ($abs && $abs['typeMore'] === Type::TYPE_TIMESTAMP) {
    Severity: Critical
    Found in src/Debug/Dump/AbstractValue.php by sonar-php

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    function run() {
      prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
      execute('action1');
      release('action1');
    }
    

    Compliant Solution

    ACTION_1 = 'action1';
    
    function run() {
      prepare(ACTION_1);
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    There are no issues that match your filters.

    Category
    Status