fileName; } /** * */ public function run() { // create temporary file: $this->tempFile(); // create CSV writer: $writer = Writer::createFromPath(new SplFileObject($this->fileName, 'a+'), 'w'); //the $writer object open mode will be 'w'!! // all rows: $rows = []; // add header: $first = $this->getEntries()->first(); $rows[] = array_keys(get_object_vars($first)); // then the rest: /** @var Entry $entry */ foreach ($this->getEntries() as $entry) { $rows[] = array_values(get_object_vars($entry)); } $writer->insertAll($rows); } private function tempFile() { $fileName = $this->job->key . '-records.csv'; $this->fileName = storage_path('export') . DIRECTORY_SEPARATOR . $fileName; $this->handler = fopen($this->fileName, 'w'); } }