Code Duplication    Length = 44-45 lines in 2 locations

src/voku/db/Result.php 2 locations

@@ 843-886 (lines=44) @@
840
   *
841
   * @return object|false <p><strong>false</strong> on error</p>
842
   */
843
  public function fetchObject($class = '', array $params = null, bool $reset = false)
844
  {
845
    if ($reset === true) {
846
      $this->reset();
847
    }
848
849
    // fallback
850
    if (!$class || $class === 'stdClass') {
851
      $class = '\stdClass';
852
    }
853
854
    $row = $this->fetch_assoc();
855
    $row = $row ? $this->cast($row) : false;
856
857
    if (!$row) {
858
      return false;
859
    }
860
861
    $propertyAccessor = PropertyAccess::createPropertyAccessor();
862
863
    if (\is_object($class)) {
864
865
      $classTmp = $class;
866
867
    } elseif ($class && $params) {
868
869
      $reflectorTmp = new \ReflectionClass($class);
870
      $classTmp = $reflectorTmp->newInstanceArgs($params);
871
872
    } else {
873
874
      $classTmp = new $class;
875
876
    }
877
878
    foreach ($row as $key => $value) {
879
      if ($class === '\stdClass') {
880
        $classTmp->{$key} = $value;
881
      } else {
882
        $propertyAccessor->setValue($classTmp, $key, $value);
883
      }
884
    }
885
886
    return $classTmp;
887
  }
888
889
  /**
@@ 977-1021 (lines=45) @@
974
   *
975
   * @return \Generator
976
   */
977
  public function fetchYield($class = '', array $params = null, bool $reset = false): \Generator
978
  {
979
    if ($reset === true) {
980
      $this->reset();
981
    }
982
983
    // fallback
984
    if (!$class || $class === 'stdClass') {
985
      $class = '\stdClass';
986
    }
987
988
    $propertyAccessor = PropertyAccess::createPropertyAccessor();
989
990
    if (\is_object($class)) {
991
992
      $classTmp = $class;
993
994
    } elseif ($class && $params) {
995
996
      $reflectorTmp = new \ReflectionClass($class);
997
      $classTmp = $reflectorTmp->newInstanceArgs($params);
998
999
    } else {
1000
1001
      $classTmp = new $class;
1002
1003
    }
1004
1005
    $row = $this->fetch_assoc();
1006
    $row = $row ? $this->cast($row) : false;
1007
1008
    if (!$row) {
1009
      return;
1010
    }
1011
1012
    foreach ($row as $key => $value) {
1013
      if ($class === '\stdClass') {
1014
        $classTmp->{$key} = $value;
1015
      } else {
1016
        $propertyAccessor->setValue($classTmp, $key, $value);
1017
      }
1018
    }
1019
1020
    yield $classTmp;
1021
  }
1022
1023
  /**
1024
   * @return mixed