protected function execute(InputInterface $input, OutputInterface $output) { $countryFilePath = ''; if (!$countryFilePath) { $countryFilePath = $this->getContainer()->getParameter('country_file_path'); } $file = new File($countryFilePath); $contents = file_get_contents($file); $fileContents = explode("\n", $contents); $em = $this->getContainer()->get('doctrine')->getEntityManager(); $em->getConnection()->getConfiguration()->setSQLLogger(null); $em->getRepository('HelperBundle:Country'); echo "Memory: " . \memory_get_usage() . "\n"; $countries = $this->getAllCountries('abbr'); //parameter is the field to be check in Entity Country $finishedNames = array(); $code = ''; foreach ($fileContents as $lineContent) { $line = explode(",", trim($lineContent)); if (!isset($line[4])) { continue; } $abbr = str_replace('"', '', $line[4]); $name = str_replace('"', '', $line[5]); if ($countries) { if (\in_array($name, $countries)) { continue; } } if (\in_array($name, $finishedNames)) { continue; } //persist data to db $country = new Country(); $country->setAbbr($abbr); $country->setName($name); $country->setStatus(Country::STATUS_ACTIVE); $country->setCode($code); $em->persist($country); $finishedNames[] = $name; echo "Memory: " . \memory_get_usage() . "\n"; } $em->flush(); //load country code $this->loadCountryCode(); echo "successfully loaded"; exit; }
/** * Create Country instance from array $data * * @param array $data * @return \HealthCareAbroad\HelperBundle\Entity\Country */ public function createCountryFromArray(array $data) { $requiredFields = array('id', 'name', 'slug'); foreach ($requiredFields as $key) { if (!isset($data[$key])) { throw LocationServiceException::missingRequiredCountryDataKey($key); } } $country = new Country(); $country->setId($data['id']); $country->setName($data['name']); $country->setSlug($data['slug']); $country->setCcIso(isset($data['ccIso']) ? $data['ccIso'] : ''); $country->setCountryCode(isset($data['countryCode']) ? $data['countryCode'] : ''); $country->setStatus(isset($data['code']) ? $data['code'] : Country::STATUS_ACTIVE); return $country; }