the-kbA-team/markdown-table

View on GitHub

Showing 17 of 17 total issues

Function generate has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
Open

    public function generate(array $rows)
    {
        if (!$this->hasColumns()) {
            throw new RuntimeException('No columns defined.');
        }
Severity: Minor
Found in src/Table.php - About 1 hr to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Method generate has 42 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    public function generate(array $rows)
    {
        if (!$this->hasColumns()) {
            throw new RuntimeException('No columns defined.');
        }
Severity: Minor
Found in src/Table.php - About 1 hr to fix

    The property $regex_alignment is not named in camelCase.
    Open

    class Column
    {
        /**
         * @const int column alignment left
         */
    Severity: Minor
    Found in src/Column.php by phpmd

    CamelCasePropertyName

    Since: 0.2

    It is considered best practice to use the camelCase notation to name attributes.

    Example

    class ClassName {
        protected $property_name;
    }

    Source

    The property $column_count is not named in camelCase.
    Open

    class Table
    {
        /**
         * @var \kbATeam\MarkdownTable\Column[]
         */
    Severity: Minor
    Found in src/Table.php by phpmd

    CamelCasePropertyName

    Since: 0.2

    It is considered best practice to use the camelCase notation to name attributes.

    Example

    class ClassName {
        protected $property_name;
    }

    Source

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

        public function generate(array $rows)
        {
            if (!$this->hasColumns()) {
                throw new RuntimeException('No columns defined.');
            }
    Severity: Minor
    Found in src/Table.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 variable $diff_left is not named in camelCase.
    Open

        public function createCell($content): string
        {
            $diff = $this->length - mb_strlen($content);
    
            if ($diff < 0) {
    Severity: Minor
    Found in src/Column.php by phpmd

    CamelCaseVariableName

    Since: 0.2

    It is considered best practice to use the camelCase notation to name variables.

    Example

    class ClassName {
        public function doSomething() {
            $data_module = new DataModule();
        }
    }

    Source

    The variable $diff_left is not named in camelCase.
    Open

        public function createCell($content): string
        {
            $diff = $this->length - mb_strlen($content);
    
            if ($diff < 0) {
    Severity: Minor
    Found in src/Column.php by phpmd

    CamelCaseVariableName

    Since: 0.2

    It is considered best practice to use the camelCase notation to name variables.

    Example

    class ClassName {
        public function doSomething() {
            $data_module = new DataModule();
        }
    }

    Source

    The variable $diff_left is not named in camelCase.
    Open

        public function createCell($content): string
        {
            $diff = $this->length - mb_strlen($content);
    
            if ($diff < 0) {
    Severity: Minor
    Found in src/Column.php by phpmd

    CamelCaseVariableName

    Since: 0.2

    It is considered best practice to use the camelCase notation to name variables.

    Example

    class ClassName {
        public function doSomething() {
            $data_module = new DataModule();
        }
    }

    Source

    The variable $diff_left is not named in camelCase.
    Open

        public function createCell($content): string
        {
            $diff = $this->length - mb_strlen($content);
    
            if ($diff < 0) {
    Severity: Minor
    Found in src/Column.php by phpmd

    CamelCaseVariableName

    Since: 0.2

    It is considered best practice to use the camelCase notation to name variables.

    Example

    class ClassName {
        public function doSomething() {
            $data_module = new DataModule();
        }
    }

    Source

    Define and throw a dedicated exception instead of using a generic one.
    Open

                    throw new RuntimeException('Rows need to be an array of arrays.');
    Severity: Major
    Found in src/Table.php by sonar-php

    If you throw a general exception type, such as ErrorException, RuntimeException, or Exception in a library or framework, it forces consumers to catch all exceptions, including unknown exceptions that they do not know how to handle.

    Instead, either throw a subtype that already exists in the Standard PHP Library, or create your own type that derives from Exception.

    Noncompliant Code Example

    throw new Exception();  // Noncompliant
    

    Compliant Solution

    throw new InvalidArgumentException();
    // or
    throw new UnexpectedValueException();
    

    See

    Define and throw a dedicated exception instead of using a generic one.
    Open

                throw new RuntimeException(sprintf('Column position %s does not exist!', $pos));
    Severity: Major
    Found in src/Table.php by sonar-php

    If you throw a general exception type, such as ErrorException, RuntimeException, or Exception in a library or framework, it forces consumers to catch all exceptions, including unknown exceptions that they do not know how to handle.

    Instead, either throw a subtype that already exists in the Standard PHP Library, or create your own type that derives from Exception.

    Noncompliant Code Example

    throw new Exception();  // Noncompliant
    

    Compliant Solution

    throw new InvalidArgumentException();
    // or
    throw new UnexpectedValueException();
    

    See

    Define and throw a dedicated exception instead of using a generic one.
    Open

                throw new RuntimeException('Invalid alignment constant.');
    Severity: Major
    Found in src/Column.php by sonar-php

    If you throw a general exception type, such as ErrorException, RuntimeException, or Exception in a library or framework, it forces consumers to catch all exceptions, including unknown exceptions that they do not know how to handle.

    Instead, either throw a subtype that already exists in the Standard PHP Library, or create your own type that derives from Exception.

    Noncompliant Code Example

    throw new Exception();  // Noncompliant
    

    Compliant Solution

    throw new InvalidArgumentException();
    // or
    throw new UnexpectedValueException();
    

    See

    Define and throw a dedicated exception instead of using a generic one.
    Open

                throw new RuntimeException('Content length too long.');
    Severity: Major
    Found in src/Column.php by sonar-php

    If you throw a general exception type, such as ErrorException, RuntimeException, or Exception in a library or framework, it forces consumers to catch all exceptions, including unknown exceptions that they do not know how to handle.

    Instead, either throw a subtype that already exists in the Standard PHP Library, or create your own type that derives from Exception.

    Noncompliant Code Example

    throw new Exception();  // Noncompliant
    

    Compliant Solution

    throw new InvalidArgumentException();
    // or
    throw new UnexpectedValueException();
    

    See

    Define and throw a dedicated exception instead of using a generic one.
    Open

                throw new RuntimeException('No columns defined.');
    Severity: Major
    Found in src/Table.php by sonar-php

    If you throw a general exception type, such as ErrorException, RuntimeException, or Exception in a library or framework, it forces consumers to catch all exceptions, including unknown exceptions that they do not know how to handle.

    Instead, either throw a subtype that already exists in the Standard PHP Library, or create your own type that derives from Exception.

    Noncompliant Code Example

    throw new Exception();  // Noncompliant
    

    Compliant Solution

    throw new InvalidArgumentException();
    // or
    throw new UnexpectedValueException();
    

    See

    Define and throw a dedicated exception instead of using a generic one.
    Open

                throw new RuntimeException('Column title is too short.');
    Severity: Major
    Found in src/Column.php by sonar-php

    If you throw a general exception type, such as ErrorException, RuntimeException, or Exception in a library or framework, it forces consumers to catch all exceptions, including unknown exceptions that they do not know how to handle.

    Instead, either throw a subtype that already exists in the Standard PHP Library, or create your own type that derives from Exception.

    Noncompliant Code Example

    throw new Exception();  // Noncompliant
    

    Compliant Solution

    throw new InvalidArgumentException();
    // or
    throw new UnexpectedValueException();
    

    See

    Define and throw a dedicated exception instead of using a generic one.
    Open

                throw new RuntimeException('Column title is no string.');
    Severity: Major
    Found in src/Column.php by sonar-php

    If you throw a general exception type, such as ErrorException, RuntimeException, or Exception in a library or framework, it forces consumers to catch all exceptions, including unknown exceptions that they do not know how to handle.

    Instead, either throw a subtype that already exists in the Standard PHP Library, or create your own type that derives from Exception.

    Noncompliant Code Example

    throw new Exception();  // Noncompliant
    

    Compliant Solution

    throw new InvalidArgumentException();
    // or
    throw new UnexpectedValueException();
    

    See

    Define and throw a dedicated exception instead of using a generic one.
    Open

                throw new RuntimeException('Column length needs to be a positive integer.');
    Severity: Major
    Found in src/Column.php by sonar-php

    If you throw a general exception type, such as ErrorException, RuntimeException, or Exception in a library or framework, it forces consumers to catch all exceptions, including unknown exceptions that they do not know how to handle.

    Instead, either throw a subtype that already exists in the Standard PHP Library, or create your own type that derives from Exception.

    Noncompliant Code Example

    throw new Exception();  // Noncompliant
    

    Compliant Solution

    throw new InvalidArgumentException();
    // or
    throw new UnexpectedValueException();
    

    See

    Severity
    Category
    Status
    Source
    Language