Differences From Artifact [d07cd0313a]:

To Artifact [a38542997d]:


120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
			self::toODS(... array_slice(func_get_args(), 1));
		}
	}

	static protected function rowToArray($row, ?callable $row_map_callback)
	{
		if (null !== $row_map_callback) {
			$row = call_user_func($row_map_callback, $row);
		}

		if (is_object($row) && $row instanceof Entity) {
			$row = $row->asArray();
		}
		elseif (is_object($row)) {
			$row = (array) $row;
		}

		foreach ($row as $key => &$v) {
			if (is_object($v)&& $v instanceof \DateTimeInterface) {
				$v = $v->format('d/m/Y');
			}
			elseif (is_object($v) || is_array($v)) {
				throw new \UnexpectedValueException(sprintf('Unexpected value for "%s": %s', $key, gettype($v)));
			}
		}

		return $row;
	}








|










|
<
<
<







120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138



139
140
141
142
143
144
145
			self::toODS(... array_slice(func_get_args(), 1));
		}
	}

	static protected function rowToArray($row, ?callable $row_map_callback)
	{
		if (null !== $row_map_callback) {
			call_user_func_array($row_map_callback, [&$row]);
		}

		if (is_object($row) && $row instanceof Entity) {
			$row = $row->asArray();
		}
		elseif (is_object($row)) {
			$row = (array) $row;
		}

		foreach ($row as $key => &$v) {
			if ((is_object($v) && !($v instanceof \DateTimeInterface)) || is_array($v)) {



				throw new \UnexpectedValueException(sprintf('Unexpected value for "%s": %s', $key, gettype($v)));
			}
		}

		return $row;
	}

156
157
158
159
160
161
162






163
164
165
166
167
168
169
		if ($header)
		{
			fputs($fp, self::row($header));
		}

		foreach ($iterator as $row)
		{






			$row = self::rowToArray($row, $row_map_callback);

			if (!$header)
			{
				fputs($fp, self::row(array_keys($row)));
				$header = true;
			}







>
>
>
>
>
>







153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
		if ($header)
		{
			fputs($fp, self::row($header));
		}

		foreach ($iterator as $row)
		{
			foreach ($row as $key => &$v) {
				if (is_object($v)&& $v instanceof \DateTimeInterface) {
					$v = $v->format('d/m/Y');
				}
			}

			$row = self::rowToArray($row, $row_map_callback);

			if (!$header)
			{
				fputs($fp, self::row(array_keys($row)));
				$header = true;
			}