Code Duplication    Length = 26-26 lines in 2 locations

src/Builder/RunnableSelect.php 2 locations

@@ 65-90 (lines=26) @@
62
	 * @param Closure $callback
63
	 * @return array[]
64
	 */
65
	public function fetchRows(Closure $callback = null) {
66
		return $this->createTempStatement(function (QueryStatement $statement) use ($callback) {
67
			$statement->setFetchMode(PDO::FETCH_ASSOC);
68
			$data = $statement->fetchAll();
69
			if($this->preserveTypes) {
70
				$columnDefinitions = FieldTypeProvider::getFieldTypes($statement);
71
				foreach($data as &$row) {
72
					$row = FieldValueConverter::convertValues($row, $columnDefinitions);
73
				}
74
			}
75
			if($callback !== null) {
76
				return call_user_func(function ($resultData = []) use ($data, $callback) {
77
					foreach($data as $row) {
78
						$result = $callback($row);
79
						if($result !== null && !($result instanceof DBIgnoreRow)) {
80
							$resultData[] = $result;
81
						} else {
82
							$resultData[] = $row;
83
						}
84
					}
85
					return $resultData;
86
				});
87
			}
88
			return $data;
89
		});
90
	}
91
92
	/**
93
	 * @param Closure $callback
@@ 142-167 (lines=26) @@
139
	 * @return \array[]
140
	 * @throws \Exception
141
	 */
142
	public function fetchObjects($className, Closure $callback = null) {
143
		return $this->createTempStatement(function (QueryStatement $statement) use ($className, $callback) {
144
			$statement->setFetchMode(PDO::FETCH_CLASS, $className);
145
			$data = $statement->fetchAll();
146
			if($this->preserveTypes) {
147
				$columnDefinitions = FieldTypeProvider::getFieldTypes($statement);
148
				foreach($data as &$row) {
149
					$row = FieldValueConverter::convertValues($row, $columnDefinitions);
150
				}
151
			}
152
			if($callback !== null) {
153
				return call_user_func(function ($resultData = []) use ($data, $callback) {
154
					foreach($data as $row) {
155
						$result = $callback($row);
156
						if($result !== null && !($result instanceof DBIgnoreRow)) {
157
							$resultData[] = $result;
158
						} else {
159
							$resultData[] = $row;
160
						}
161
					}
162
					return $resultData;
163
				});
164
			}
165
			return $data;
166
		});
167
	}
168
169
	/**
170
	 * @param string $className