codeformunich/Muenchen-Transparent

View on GitHub
protected/components/RISSucheKrits.php

Summary

Maintainability
D
2 days
Test Coverage

File RISSucheKrits.php has 360 lines of code (exceeds 250 allowed). Consider refactoring.
Open

<?php

class RISSucheKrits
{
    /** @var array */
Severity: Minor
Found in protected/components/RISSucheKrits.php - About 4 hrs to fix

    Method getBeschreibungDerSuche has 97 lines of code (exceeds 30 allowed). Consider refactoring.
    Open

        public function getBeschreibungDerSuche($dokument = null)
        {
            if (count($this->krits) == 1) switch ($this->krits[0]["typ"]) {
                case "betreff":
                    $such = $this->krits[0]["suchbegriff"];
    Severity: Major
    Found in protected/components/RISSucheKrits.php - About 3 hrs to fix

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

      class RISSucheKrits
      {
          /** @var array */
          public $krits = [];
      
      

      Method addKrit has 58 lines of code (exceeds 30 allowed). Consider refactoring.
      Open

          public function addKrit($name, $value)
          {
              switch ($name) {
                  case "betreff":
                      $this->krits[] = [
      Severity: Major
      Found in protected/components/RISSucheKrits.php - About 2 hrs to fix

        Method getSolrQueryStr has 35 lines of code (exceeds 30 allowed). Consider refactoring.
        Open

            public function getSolrQueryStr($select)
            {
                foreach ($this->krits as $krit) switch ($krit["typ"]) {
                    case "betreff":
                        $helper = $select->getHelper();
        Severity: Minor
        Found in protected/components/RISSucheKrits.php - About 1 hr to fix

          Method addKritsToSolr has 35 lines of code (exceeds 30 allowed). Consider refactoring.
          Open

              public function addKritsToSolr(&$select)
              {
                  foreach ($this->krits as $krit) switch ($krit["typ"]) {
                      case "betreff":
                          $helper = $select->getHelper();
          Severity: Minor
          Found in protected/components/RISSucheKrits.php - About 1 hr to fix

            Method getUrl has 32 lines of code (exceeds 30 allowed). Consider refactoring.
            Open

                public function getUrl($path = "index/suche")
                {
                    $str = "";
                    foreach ($this->krits as $krit) {
                        if ($str != "") $str .= "&";
            Severity: Minor
            Found in protected/components/RISSucheKrits.php - About 1 hr to fix

              Avoid too many return statements within this method.
              Open

                              return $helper->geofilt("geo", $krit["lat"], $krit["lng"], ($krit["radius"] / 1000));
              Severity: Major
              Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                Avoid too many return statements within this method.
                Open

                                return $title;
                Severity: Major
                Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                  Avoid too many return statements within this method.
                  Open

                                  return $ref->name;
                  Severity: Major
                  Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                    Avoid too many return statements within this method.
                    Open

                                    return $krit["suchbegriff"];
                    Severity: Major
                    Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                      Avoid too many return statements within this method.
                      Open

                              return "";
                      Severity: Major
                      Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                        Avoid too many return statements within this method.
                        Open

                                                return $ort->ort->ba_nr == $ba->ba_nr;
                        Severity: Major
                        Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                          Avoid too many return statements within this method.
                          Open

                                  return json_encode($this->krits);
                          Severity: Major
                          Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                            Avoid too many return statements within this method.
                            Open

                                                return "*" . $krit["suchbegriff"] . "*";
                            Severity: Major
                            Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                              Avoid too many return statements within this method.
                              Open

                                              return "Antrag Nr. " . str_replace("*", " ", $this->krits[0]["suchbegriff"]);
                              Severity: Major
                              Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                                Avoid too many return statements within this method.
                                Open

                                                    return "*" . $krit["antrag_nr"] . "*";
                                Severity: Major
                                Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                                  Avoid too many return statements within this method.
                                  Open

                                                  return "";
                                  Severity: Major
                                  Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                                    Avoid too many return statements within this method.
                                    Open

                                                    return "referat_id:" . $krit["referat_id"];
                                    Severity: Major
                                    Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                                      Avoid too many return statements within this method.
                                      Open

                                                      return "Volltextsuche nach \"" . $such . "\"";
                                      Severity: Major
                                      Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                                        Avoid too many return statements within this method.
                                        Open

                                                        return "Dokumente der Wahlperiode " . $this->krits[0]["suchbegriff"];
                                        Severity: Major
                                        Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                                          Avoid too many return statements within this method.
                                          Open

                                                          return $title;
                                          Severity: Major
                                          Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                                            Avoid too many return statements within this method.
                                            Open

                                                        return $text;
                                            Severity: Major
                                            Found in protected/components/RISSucheKrits.php - About 30 mins to fix

                                              The method getBeschreibungDerSuche() has an NPath complexity of 899. The configured NPath complexity threshold is 200.
                                              Open

                                                  public function getBeschreibungDerSuche($dokument = null)
                                                  {
                                                      if (count($this->krits) == 1) switch ($this->krits[0]["typ"]) {
                                                          case "betreff":
                                                              $such = $this->krits[0]["suchbegriff"];

                                              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 getBeschreibungDerSuche() has 111 lines of code. Current threshold is set to 100. Avoid really long methods.
                                              Open

                                                  public function getBeschreibungDerSuche($dokument = null)
                                                  {
                                                      if (count($this->krits) == 1) switch ($this->krits[0]["typ"]) {
                                                          case "betreff":
                                                              $such = $this->krits[0]["suchbegriff"];

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

                                                  public function addKritsToSolr(&$select)
                                                  {
                                                      foreach ($this->krits as $krit) switch ($krit["typ"]) {
                                                          case "betreff":
                                                              $helper = $select->getHelper();

                                              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 getSolrQueryStr() has a Cyclomatic Complexity of 12. The configured cyclomatic complexity threshold is 10.
                                              Open

                                                  public function getSolrQueryStr($select)
                                                  {
                                                      foreach ($this->krits as $krit) switch ($krit["typ"]) {
                                                          case "betreff":
                                                              $helper = $select->getHelper();

                                              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 getBeschreibungDerSuche() has a Cyclomatic Complexity of 35. The configured cyclomatic complexity threshold is 10.
                                              Open

                                                  public function getBeschreibungDerSuche($dokument = null)
                                                  {
                                                      if (count($this->krits) == 1) switch ($this->krits[0]["typ"]) {
                                                          case "betreff":
                                                              $such = $this->krits[0]["suchbegriff"];

                                              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 getUrl() has a Cyclomatic Complexity of 11. The configured cyclomatic complexity threshold is 10.
                                              Open

                                                  public function getUrl($path = "index/suche")
                                                  {
                                                      $str = "";
                                                      foreach ($this->krits as $krit) {
                                                          if ($str != "") $str .= "&";

                                              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 using count() function in for loops.
                                              Open

                                                          for ($i = 0; $i < (count($krits) - 1); $i++) {
                                                              $text .= $krits[$i];
                                                              if ($i < (count($krits) - 2)) $text .= ", ";
                                                          }

                                              CountInLoopExpression

                                              Since: 2.7.0

                                              Using count/sizeof in loops expressions is considered bad practice and is a potential source of many bugs, especially when the loop manipulates an array, as count happens on each iteration.

                                              Example

                                              class Foo {
                                              
                                                public function bar()
                                                {
                                                  $array = array();
                                              
                                                  for ($i = 0; count($array); $i++) {
                                                    // ...
                                                  }
                                                }
                                              }

                                              Source https://phpmd.org/rules/design.html#countinloopexpression

                                              Avoid using count() function in for loops.
                                              Open

                                                      for ($i = 0; $i < count($request["krit_typ"]); $i++)
                                                          $x->addKrit($request["krit_typ"][$i], $request["krit_val"][$i]);

                                              CountInLoopExpression

                                              Since: 2.7.0

                                              Using count/sizeof in loops expressions is considered bad practice and is a potential source of many bugs, especially when the loop manipulates an array, as count happens on each iteration.

                                              Example

                                              class Foo {
                                              
                                                public function bar()
                                                {
                                                  $array = array();
                                              
                                                  for ($i = 0; count($array); $i++) {
                                                    // ...
                                                  }
                                                }
                                              }

                                              Source https://phpmd.org/rules/design.html#countinloopexpression

                                              FIXME found
                                              Open

                                                   * FIXME: Schließen sich volltext und antrag_nr gegenseitig aus?

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

                                                      $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
                                              Severity: Minor
                                              Found in protected/components/RISSucheKrits.php and 1 other location - About 40 mins to fix
                                              protected/components/RISGeo.php on lines 184..184

                                              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 93.

                                              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

                                              There are no issues that match your filters.

                                              Category
                                              Status