В функции aggregator над каждой строкой выполняются многочисленые действия, после чего разные части строк записываются по таблицам.
Плохо, метод должен отвечать только за реализацию одного логического действия, а не за все и сразу
Меня интересует как можно накопить записи в массив в функции aggregator,
По нормальному никак ... можно например использовать global или аналогичные варианты - но это будет плохой код
Лучше разделите ответственность методов, например так:
class MyClass
{
public function uploader($rows)
{
$items = [];
foreach ($rows as $row => $data) {
$items[] = $this->aggregator($data);
}
$this->save($items)
}
public function aggregator($data)
{
// выполнение нужных операций над данными
}
public function save($items)
{
// сохранение массива данных, аля batchInsert
}
}