rinvex/cortex-attributes

View on GitHub
src/Models/Attribute.php

Summary

Maintainability
A
3 hrs
Test Coverage

Method render has 41 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    public function render(Model $entity, string $accessArea): string
    {
        $default = '';
        $selected = '';

Severity: Minor
Found in src/Models/Attribute.php - About 1 hr to fix

Consider simplifying this complex logical expression.
Open

                    if (mb_strpos($item, '=')) {
                        $details['label'] = mb_strstr($item, '=', true);
                        $item = Str::replaceFirst('=', '', mb_strstr($item, '='));

                        // Check for SELECTED itmes (marked by asterisk)
Severity: Major
Found in src/Models/Attribute.php - About 1 hr to fix

Avoid too many return statements within this method.
Open

                return view("cortex/attributes::{$accessArea}.types.".$this->type, ['attribute' => $this, 'entity' => $entity, 'default' => $default])->render();
Severity: Major
Found in src/Models/Attribute.php - About 30 mins to fix

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

    public function render(Model $entity, string $accessArea): string
    {
        $default = '';
        $selected = '';

Severity: Minor
Found in src/Models/Attribute.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

Avoid excessively long variable names like $ignoreChangedAttributes. Keep variable name length under 20.
Open

    protected static $ignoreChangedAttributes = [
        'created_at',
        'updated_at',
        'deleted_at',
    ];
Severity: Minor
Found in src/Models/Attribute.php by phpmd

LongVariable

Since: 0.2

Detects when a field, formal or local variable is declared with a long name.

Example

class Something {
    protected $reallyLongIntName = -3; // VIOLATION - Field
    public static function main( array $interestingArgumentsList[] ) { // VIOLATION - Formal
        $otherReallyLongName = -5; // VIOLATION - Local
        for ($interestingIntIndex = 0; // VIOLATION - For
             $interestingIntIndex < 10;
             $interestingIntIndex++ ) {
        }
    }
}

Source https://phpmd.org/rules/naming.html#longvariable

There are no issues that match your filters.

Category
Status