public function parse() { $batch = 10; while (($data = $this->getLine()) !== false) { try { array_walk($data, function (&$value) { $value = trim($value); if (!strlen($value)) { $value = null; } }); if (($product = $this->isProductExist($data[3])) === false) { $product = new Entity\Product(); } $product->setCustomer($this->_customer); $product->setName($data[3]); $product->setTnved($data[5]); $product->setHscode($data[6]); $product->setDescription($data[7]); $product->setDescriptionInvoice($data[8]); $product->setExtraData($data[9]); $product->setNetWeight($data[10]); $product->setStatus($this->_status); $product->setCustomText1($data[13]); $this->_em->persist($product); if ($this->_count % $batch === 0) { echo memory_get_usage() / 1024, "\n"; $this->_em->flush(); $this->_em->clear($product); } $this->_count++; } catch (\Exception $ex) { $logger = $this->get('logger'); $logger->error($ex->getMessage()); } } $this->_em->flush(); $this->_em->clear(); }
private function createNewProduct($data) { $product = new Entity\Product(); $product->setCustomer($this->_customer); $product->setName($data[3]); $product->setTnved($data[5]); $product->setHscode($data[6]); $product->setDescription($data[7]); $product->setDescriptionInvoice($data[8]); $product->setExtraData($data[9]); $product->setNetWeight($data[10]); $product->setStatus($this->_status); $product->setCustomText1($data[13]); $this->_em->persist($product); return $product; }