public function extract(ContextInterface $context) { $data = $this->csv->current(); if (null !== $this->identifierColumn) { $context->setIdentifier($data[$this->identifierColumn]); } $this->csv->next(); return $data; }
public function load($data, ContextInterface $context) { if ($id = $context->getIdentifier()) { return $this->conn->update($context->getTableName(), $data, ['id' => $id]); } // @TODO get id //$context->setIdentifier($id); //$data['id'] = $this->conn->fetchColumn("SELECT NEXTVAL('fos_user_id_seq')", [], 0); return $this->conn->insert($context->getTableName(), $data); }
public function extract(ContextInterface $context) { if (!$this->valid()) { return false; } $data = $this->current(); $this->next(); if (null !== $this->identifierColumn) { $context->setIdentifier($data[$this->identifierColumn]); } return $data; }
public function transform($data, ContextInterface $context) { $this->mapper->verifyCount($data); $id = $context->getIdentifier(); if (null !== $this->logger) { $this->logger->info(sprintf('Transforming data with id #%s', $id)); } $object = $this->doctrine->getRepository($this->className)->find($id); if (null === $object) { //TODO use a configurable factory here $object = new $this->className(); if (null !== $this->logger) { $this->logger->info(sprintf('Creating new object "%s"', $this->className)); } } $this->mapper->set($data, $object); return $object; }
public function load($entity, ContextInterface $context) { if (null === $this->entityClass) { $this->entityClass = get_class($entity); } $this->doctrine->getManager()->persist($entity); $shouldFlush = $shouldClear = false; if ($context instanceof ORMContext) { $shouldFlush = $context->shouldFlush(); $context->shouldFlush(false); // TODO really ? $shouldClear = $context->shouldClear(); $context->shouldClear(false); // TODO really ? } $this->counter++; if ($this->counter % $this->flushEvery === 0 || $shouldFlush) { $this->flush($context); } if ($this->counter % $this->flushEvery === 0 || $shouldClear) { $this->clear($context); } }
public function transform($data, ContextInterface $context) { $target = $context->getTransformedData(); $this->set($data, $target); return $target; }