/** * @return void */ private function seedUsers() { $this->client->insertOrUpdateUsers((new EntitiesBatch())->addEntity(self::USER_JOHN, [self::ATTRIBUTE_NAME => 'John'])->addEntity(self::USER_PAUL, [self::ATTRIBUTE_NAME => 'Paul', self::ATTRIBUTE_AGE => 35])->addEntity(self::USER_SUZIE, [self::ATTRIBUTE_NAME => 'Suzie'])); }
/** * upload all data to recommeder * */ public function upload(DataApi\Client $client) { if (!is_null($this->filePath)) { $batchSize = 5000; $csvFile = new CsvFile($this->filePath); $csvFile->rewind(); if (!$csvFile->valid()) { break; } $header = $csvFile->current(); $csvFile->next(); $usersBatch = new DataApi\Batch\EntitiesBatch(); $batchRowsCount = 0; while ($csvFile->valid()) { $attributes = array_combine($header, $csvFile->current()); $csvFile->next(); // process row - remove id column etc. $pk = $this->manifest->getPrimaryKey()[0]; $id = $attributes[$pk]; unset($attributes[$pk]); $usersBatch->addEntity($id, $attributes); $batchRowsCount += 1; if ($batchRowsCount == $batchSize || !$csvFile->valid()) { $client->insertOrUpdateUsers($usersBatch); $usersBatch = new DataApi\Batch\EntitiesBatch(); $batchRowsCount = 0; } } } return $this; }