yiisoft/yii2

View on GitHub
framework/helpers/BaseFileHelper.php

Summary

Maintainability
F
4 days
Test Coverage

Function copyDirectory has a Cognitive Complexity of 38 (exceeds 5 allowed). Consider refactoring.
Open

    public static function copyDirectory($src, $dst, $options = [])
    {
        $src = static::normalizePath($src);
        $dst = static::normalizePath($dst);

Severity: Minor
Found in framework/helpers/BaseFileHelper.php - About 5 hrs 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

Function changeOwnership has a Cognitive Complexity of 31 (exceeds 5 allowed). Consider refactoring.
Open

    public static function changeOwnership($path, $ownership, $mode = null)
    {
        if (!file_exists((string)$path)) {
            throw new InvalidArgumentException('Unable to change ownership, "' . $path . '" is not a file or directory.');
        }
Severity: Minor
Found in framework/helpers/BaseFileHelper.php - About 4 hrs 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

The class BaseFileHelper has an overall complexity of 209 which is very high. The configured complexity threshold is 50.
Open

class BaseFileHelper
{
    const PATTERN_NODIR = 1;
    const PATTERN_ENDSWITH = 4;
    const PATTERN_MUSTBEDIR = 8;
Severity: Minor
Found in framework/helpers/BaseFileHelper.php by phpmd

Function lastExcludeMatchingFromList has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
Open

    private static function lastExcludeMatchingFromList($basePath, $path, $excludes)
    {
        foreach (array_reverse($excludes) as $exclude) {
            if (is_string($exclude)) {
                $exclude = self::parseExcludePattern($exclude, false);
Severity: Minor
Found in framework/helpers/BaseFileHelper.php - About 2 hrs 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

Function removeDirectory has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
Open

    public static function removeDirectory($dir, $options = [])
    {
        if (!is_dir($dir)) {
            return;
        }
Severity: Minor
Found in framework/helpers/BaseFileHelper.php - About 2 hrs 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

Function normalizePath has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
Open

    public static function normalizePath($path, $ds = DIRECTORY_SEPARATOR)
    {
        $path = rtrim(strtr($path, '/\\', $ds . $ds), $ds);
        if (strpos($ds . $path, "{$ds}.") === false && strpos($path, "{$ds}{$ds}") === false) {
            return $path;
Severity: Minor
Found in framework/helpers/BaseFileHelper.php - About 2 hrs 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

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

    private static function matchPathname($path, $basePath, $pattern, $firstWildcard, $flags)
    {
        // match with FNM_PATHNAME; the pattern has base implicitly in front of it.
        if (strncmp($pattern, '/', 1) === 0) {
            $pattern = StringHelper::byteSubstr($pattern, 1, StringHelper::byteLength($pattern));
Severity: Minor
Found in framework/helpers/BaseFileHelper.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

Function findFiles has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
Open

    public static function findFiles($dir, $options = [])
    {
        $dir = self::clearDir($dir);
        $options = self::setBasePath($dir, $options);
        $list = [];
Severity: Minor
Found in framework/helpers/BaseFileHelper.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

Function getExtensionByMimeType has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
Open

    public static function getExtensionByMimeType($mimeType, $preferShort = false, $magicFile = null)
    {
        $aliases = static::loadMimeAliases(static::$mimeAliasesFile);
        if (isset($aliases[$mimeType])) {
            $mimeType = $aliases[$mimeType];
Severity: Minor
Found in framework/helpers/BaseFileHelper.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

Function normalizeOptions has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
Open

    protected static function normalizeOptions(array $options)
    {
        if (!array_key_exists('caseSensitive', $options)) {
            $options['caseSensitive'] = true;
        }
Severity: Minor
Found in framework/helpers/BaseFileHelper.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

Function findDirectories has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
Open

    public static function findDirectories($dir, $options = [])
    {
        $dir = self::clearDir($dir);
        $options = self::setBasePath($dir, $options);
        $list = [];
Severity: Minor
Found in framework/helpers/BaseFileHelper.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

Function unlink has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
Open

    public static function unlink($path)
    {
        $isWindows = DIRECTORY_SEPARATOR === '\\';

        if (!$isWindows) {
Severity: Minor
Found in framework/helpers/BaseFileHelper.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

Function createDirectory has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
Open

    public static function createDirectory($path, $mode = 0775, $recursive = true)
    {
        if (is_dir($path)) {
            return true;
        }
Severity: Minor
Found in framework/helpers/BaseFileHelper.php - About 45 mins 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

Function parseExcludePattern has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
Open

    private static function parseExcludePattern($pattern, $caseSensitive)
    {
        if (!is_string($pattern)) {
            throw new InvalidArgumentException('Exclude/include pattern must be a string.');
        }
Severity: Minor
Found in framework/helpers/BaseFileHelper.php - About 45 mins 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 matchPathname has 5 arguments (exceeds 4 allowed). Consider refactoring.
Open

    private static function matchPathname($path, $basePath, $pattern, $firstWildcard, $flags)
Severity: Minor
Found in framework/helpers/BaseFileHelper.php - About 35 mins to fix

    Function filterPath has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
    Open

        public static function filterPath($path, $options)
        {
            if (isset($options['filter'])) {
                $result = call_user_func($options['filter'], $path);
                if (is_bool($result)) {
    Severity: Minor
    Found in framework/helpers/BaseFileHelper.php - About 35 mins 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

    Function getMimeType has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
    Open

        public static function getMimeType($file, $magicFile = null, $checkExtension = true)
        {
            if ($magicFile !== null) {
                $magicFile = Yii::getAlias($magicFile);
            }
    Severity: Minor
    Found in framework/helpers/BaseFileHelper.php - About 35 mins 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

    Function matchBasename has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
    Open

        private static function matchBasename($baseName, $pattern, $firstWildcard, $flags)
        {
            if ($firstWildcard === false) {
                if ($pattern === $baseName) {
                    return true;
    Severity: Minor
    Found in framework/helpers/BaseFileHelper.php - About 35 mins 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

    Avoid too many return statements within this method.
    Open

                return false;
    Severity: Major
    Found in framework/helpers/BaseFileHelper.php - About 30 mins to fix

      Avoid too many return statements within this method.
      Open

                      return !file_exists($path);
      Severity: Major
      Found in framework/helpers/BaseFileHelper.php - About 30 mins to fix

        Avoid too many return statements within this method.
        Open

                return true;
        Severity: Major
        Found in framework/helpers/BaseFileHelper.php - About 30 mins to fix

          The class BaseFileHelper has 1003 lines of code. Current threshold is 1000. Avoid really long classes.
          Open

          class BaseFileHelper
          {
              const PATTERN_NODIR = 1;
              const PATTERN_ENDSWITH = 4;
              const PATTERN_MUSTBEDIR = 8;
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.php by phpmd

          The method copyDirectory() has an NPath complexity of 9960. The configured NPath complexity threshold is 200.
          Open

              public static function copyDirectory($src, $dst, $options = [])
              {
                  $src = static::normalizePath($src);
                  $dst = static::normalizePath($dst);
          
          
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.php by phpmd

          NPathComplexity

          Since: 0.1

          The NPath complexity of a method is the number of acyclic execution paths through that method. A threshold of 200 is generally considered the point where measures should be taken to reduce complexity.

          Example

          class Foo {
              function bar() {
                  // lots of complicated code
              }
          }

          Source https://phpmd.org/rules/codesize.html#npathcomplexity

          The method changeOwnership() has an NPath complexity of 28160. The configured NPath complexity threshold is 200.
          Open

              public static function changeOwnership($path, $ownership, $mode = null)
              {
                  if (!file_exists((string)$path)) {
                      throw new InvalidArgumentException('Unable to change ownership, "' . $path . '" is not a file or directory.');
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.php by phpmd

          NPathComplexity

          Since: 0.1

          The NPath complexity of a method is the number of acyclic execution paths through that method. A threshold of 200 is generally considered the point where measures should be taken to reduce complexity.

          Example

          class Foo {
              function bar() {
                  // lots of complicated code
              }
          }

          Source https://phpmd.org/rules/codesize.html#npathcomplexity

          The method normalizePath() has an NPath complexity of 432. The configured NPath complexity threshold is 200.
          Open

              public static function normalizePath($path, $ds = DIRECTORY_SEPARATOR)
              {
                  $path = rtrim(strtr($path, '/\\', $ds . $ds), $ds);
                  if (strpos($ds . $path, "{$ds}.") === false && strpos($path, "{$ds}{$ds}") === false) {
                      return $path;
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.php by phpmd

          NPathComplexity

          Since: 0.1

          The NPath complexity of a method is the number of acyclic execution paths through that method. A threshold of 200 is generally considered the point where measures should be taken to reduce complexity.

          Example

          class Foo {
              function bar() {
                  // lots of complicated code
              }
          }

          Source https://phpmd.org/rules/codesize.html#npathcomplexity

          The method parseExcludePattern() has an NPath complexity of 288. The configured NPath complexity threshold is 200.
          Open

              private static function parseExcludePattern($pattern, $caseSensitive)
              {
                  if (!is_string($pattern)) {
                      throw new InvalidArgumentException('Exclude/include pattern must be a string.');
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.php by phpmd

          NPathComplexity

          Since: 0.1

          The NPath complexity of a method is the number of acyclic execution paths through that method. A threshold of 200 is generally considered the point where measures should be taken to reduce complexity.

          Example

          class Foo {
              function bar() {
                  // lots of complicated code
              }
          }

          Source https://phpmd.org/rules/codesize.html#npathcomplexity

          The method matchPathname() has an NPath complexity of 400. The configured NPath complexity threshold is 200.
          Open

              private static function matchPathname($path, $basePath, $pattern, $firstWildcard, $flags)
              {
                  // match with FNM_PATHNAME; the pattern has base implicitly in front of it.
                  if (strncmp($pattern, '/', 1) === 0) {
                      $pattern = StringHelper::byteSubstr($pattern, 1, StringHelper::byteLength($pattern));
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.php by phpmd

          NPathComplexity

          Since: 0.1

          The NPath complexity of a method is the number of acyclic execution paths through that method. A threshold of 200 is generally considered the point where measures should be taken to reduce complexity.

          Example

          class Foo {
              function bar() {
                  // lots of complicated code
              }
          }

          Source https://phpmd.org/rules/codesize.html#npathcomplexity

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

              private static function parseExcludePattern($pattern, $caseSensitive)
              {
                  if (!is_string($pattern)) {
                      throw new InvalidArgumentException('Exclude/include pattern must be a string.');
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 method normalizePath() has a Cyclomatic Complexity of 15. The configured cyclomatic complexity threshold is 10.
          Open

              public static function normalizePath($path, $ds = DIRECTORY_SEPARATOR)
              {
                  $path = rtrim(strtr($path, '/\\', $ds . $ds), $ds);
                  if (strpos($ds . $path, "{$ds}.") === false && strpos($path, "{$ds}{$ds}") === false) {
                      return $path;
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 method matchPathname() has a Cyclomatic Complexity of 12. The configured cyclomatic complexity threshold is 10.
          Open

              private static function matchPathname($path, $basePath, $pattern, $firstWildcard, $flags)
              {
                  // match with FNM_PATHNAME; the pattern has base implicitly in front of it.
                  if (strncmp($pattern, '/', 1) === 0) {
                      $pattern = StringHelper::byteSubstr($pattern, 1, StringHelper::byteLength($pattern));
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 method removeDirectory() has a Cyclomatic Complexity of 10. The configured cyclomatic complexity threshold is 10.
          Open

              public static function removeDirectory($dir, $options = [])
              {
                  if (!is_dir($dir)) {
                      return;
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 method copyDirectory() has a Cyclomatic Complexity of 22. The configured cyclomatic complexity threshold is 10.
          Open

              public static function copyDirectory($src, $dst, $options = [])
              {
                  $src = static::normalizePath($src);
                  $dst = static::normalizePath($dst);
          
          
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 method lastExcludeMatchingFromList() has a Cyclomatic Complexity of 11. The configured cyclomatic complexity threshold is 10.
          Open

              private static function lastExcludeMatchingFromList($basePath, $path, $excludes)
              {
                  foreach (array_reverse($excludes) as $exclude) {
                      if (is_string($exclude)) {
                          $exclude = self::parseExcludePattern($exclude, false);
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 method changeOwnership() has a Cyclomatic Complexity of 27. The configured cyclomatic complexity threshold is 10.
          Open

              public static function changeOwnership($path, $ownership, $mode = null)
              {
                  if (!file_exists((string)$path)) {
                      throw new InvalidArgumentException('Unable to change ownership, "' . $path . '" is not a file or directory.');
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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

          Missing class import via use statement (line '723', column '23').
          Open

                      throw new \yii\base\Exception("Failed to change permissions for directory \"$path\": " . $e->getMessage(), $e->getCode(), $e);
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.php by phpmd

          MissingImport

          Since: 2.7.0

          Importing all external classes in a file through use statements makes them clearly visible.

          Example

          function make() {
              return new \stdClass();
          }

          Source http://phpmd.org/rules/cleancode.html#MissingImport

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

              public static function getExtensionByMimeType($mimeType, $preferShort = false, $magicFile = null)
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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

          Remove error control operator '@' on line 414.
          Open

              public static function copyDirectory($src, $dst, $options = [])
              {
                  $src = static::normalizePath($src);
                  $dst = static::normalizePath($dst);
          
          
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.php by phpmd

          ErrorControlOperator

          Error suppression should be avoided if possible as it doesn't just suppress the error, that you are trying to stop, but will also suppress errors that you didn't predict would ever occur. Consider changing error_reporting() level and/or setting up your own error handler.

          Example

          function foo($filePath) {
              $file = @fopen($filPath); // hides exceptions
              $key = @$array[$notExistingKey]; // assigns null to $key
          }

          Source http://phpmd.org/rules/cleancode.html#errorcontroloperator

          Missing class import via use statement (line '717', column '27').
          Open

                          throw new \yii\base\Exception("Failed to create directory \"$path\": " . $e->getMessage(), $e->getCode(), $e);
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.php by phpmd

          MissingImport

          Since: 2.7.0

          Importing all external classes in a file through use statements makes them clearly visible.

          Example

          function make() {
              return new \stdClass();
          }

          Source http://phpmd.org/rules/cleancode.html#MissingImport

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

              public static function getMimeType($file, $magicFile = null, $checkExtension = true)
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 createDirectory has a boolean flag argument $recursive, which is a certain sign of a Single Responsibility Principle violation.
          Open

              public static function createDirectory($path, $mode = 0775, $recursive = true)
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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

          Avoid assigning values to variables in if clauses and the like (line '197', column '14').
          Open

              public static function getMimeTypeByExtension($file, $magicFile = null)
              {
                  $mimeTypes = static::loadMimeTypes($magicFile);
          
                  if (($ext = pathinfo($file, PATHINFO_EXTENSION)) !== '') {
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.php by phpmd

          IfStatementAssignment

          Since: 2.7.0

          Assignments in if clauses and the like are considered a code smell. Assignments in PHP return the right operand as their result. In many cases, this is an expected behavior, but can lead to many difficult to spot bugs, especially when the right operand could result in zero, null or an empty string and the like.

          Example

          class Foo
          {
              public function bar($flag)
              {
                  if ($foo = 'bar') { // possible typo
                      // ...
                  }
                  if ($baz = 0) { // always false
                      // ...
                  }
              }
          }

          Source http://phpmd.org/rules/cleancode.html#ifstatementassignment

          Avoid assigning values to variables in if clauses and the like (line '448', column '19').
          Open

              public static function removeDirectory($dir, $options = [])
              {
                  if (!is_dir($dir)) {
                      return;
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.php by phpmd

          IfStatementAssignment

          Since: 2.7.0

          Assignments in if clauses and the like are considered a code smell. Assignments in PHP return the right operand as their result. In many cases, this is an expected behavior, but can lead to many difficult to spot bugs, especially when the right operand could result in zero, null or an empty string and the like.

          Example

          class Foo
          {
              public function bar($flag)
              {
                  if ($foo = 'bar') { // possible typo
                      // ...
                  }
                  if ($baz = 0) { // always false
                      // ...
                  }
              }
          }

          Source http://phpmd.org/rules/cleancode.html#ifstatementassignment

          Avoid assigning values to variables in if clauses and the like (line '676', column '17').
          Open

              public static function filterPath($path, $options)
              {
                  if (isset($options['filter'])) {
                      $result = call_user_func($options['filter'], $path);
                      if (is_bool($result)) {
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.php by phpmd

          IfStatementAssignment

          Since: 2.7.0

          Assignments in if clauses and the like are considered a code smell. Assignments in PHP return the right operand as their result. In many cases, this is an expected behavior, but can lead to many difficult to spot bugs, especially when the right operand could result in zero, null or an empty string and the like.

          Example

          class Foo
          {
              public function bar($flag)
              {
                  if ($foo = 'bar') { // possible typo
                      // ...
                  }
                  if ($baz = 0) { // always false
                      // ...
                  }
              }
          }

          Source http://phpmd.org/rules/cleancode.html#ifstatementassignment

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

                  if ($user !== null && $user !== '') {
                      if (is_numeric($user)) {
                          $user = (int) $user;
                      } elseif (!is_string($user)) {
                          throw new InvalidArgumentException('The user part of $ownership must be an integer, string, or null.');
          Severity: Major
          Found in framework/helpers/BaseFileHelper.php and 1 other location - About 1 hr to fix
          framework/helpers/BaseFileHelper.php on lines 1017..1026

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 107.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

                  if ($group !== null && $group !== '') {
                      if (is_numeric($group)) {
                          $group = (int) $group;
                      } elseif (!is_string($group)) {
                          throw new InvalidArgumentException('The group part of $ownership must be an integer, string or null.');
          Severity: Major
          Found in framework/helpers/BaseFileHelper.php and 1 other location - About 1 hr to fix
          framework/helpers/BaseFileHelper.php on lines 1007..1016

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 107.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          The variable $_mimeTypes is not named in camelCase.
          Open

              protected static function loadMimeTypes($magicFile)
              {
                  if ($magicFile === null) {
                      $magicFile = static::$mimeMagicFile;
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 $_mimeTypes is not named in camelCase.
          Open

              protected static function loadMimeTypes($magicFile)
              {
                  if ($magicFile === null) {
                      $magicFile = static::$mimeMagicFile;
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 $_mimeTypes is not named in camelCase.
          Open

              protected static function loadMimeTypes($magicFile)
              {
                  if ($magicFile === null) {
                      $magicFile = static::$mimeMagicFile;
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 $_mimeExtensions is not named in camelCase.
          Open

              protected static function loadMimeExtensions($extensionsFile)
              {
                  if ($extensionsFile === null) {
                      $extensionsFile = static::$mimeExtensionsFile;
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 $_mimeAliases is not named in camelCase.
          Open

              protected static function loadMimeAliases($aliasesFile)
              {
                  if ($aliasesFile === null) {
                      $aliasesFile = static::$mimeAliasesFile;
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 $_mimeExtensions is not named in camelCase.
          Open

              protected static function loadMimeExtensions($extensionsFile)
              {
                  if ($extensionsFile === null) {
                      $extensionsFile = static::$mimeExtensionsFile;
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 $_mimeExtensions is not named in camelCase.
          Open

              protected static function loadMimeExtensions($extensionsFile)
              {
                  if ($extensionsFile === null) {
                      $extensionsFile = static::$mimeExtensionsFile;
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 $_mimeAliases is not named in camelCase.
          Open

              protected static function loadMimeAliases($aliasesFile)
              {
                  if ($aliasesFile === null) {
                      $aliasesFile = static::$mimeAliasesFile;
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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 $_mimeAliases is not named in camelCase.
          Open

              protected static function loadMimeAliases($aliasesFile)
              {
                  if ($aliasesFile === null) {
                      $aliasesFile = static::$mimeAliasesFile;
                  }
          Severity: Minor
          Found in framework/helpers/BaseFileHelper.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

          There are no issues that match your filters.

          Category
          Status