src/Services/TranslationsImportService.php line 78

Open in your IDE?
  1. <?php
  2. namespace App\Services;
  3. use App\Entity\Import;
  4. use App\Entity\Translation;
  5. use App\Repository\TranslationRepository;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Component\DependencyInjection\ContainerInterface;
  8. class TranslationsImportService
  9. {
  10.     public function importTranslations(string $fileName)
  11.     {
  12.         $filepath $this->container->getParameter('translations_directory');
  13.         $fullpath $filepath $fileName;
  14.         $alldatatsFromCsv = [];
  15.         $row 0;
  16.         if (($handle fopen($fullpath"r")) !== FALSE) {
  17.             while (($data fgetcsv($handle10000",")) !== FALSE) {
  18.                 if ($row == 0) {
  19.                     $row++;
  20.                     continue;
  21.                 }
  22.                 $num count($data);
  23.                 $row++;
  24.                 for ($c 0$c $num$c++) {
  25.                     $alldatatsFromCsv[$row][] = $data[$c];
  26.                 }
  27.             }
  28.             fclose($handle);
  29.         }
  30.         foreach ($alldatatsFromCsv as $oneLineFromCsv) {
  31.             $english trim($oneLineFromCsv[0]);
  32.             $french trim($oneLineFromCsv[1]);
  33.             $german trim($oneLineFromCsv[2]);
  34.             $spanish trim($oneLineFromCsv[3]);
  35.             $russian trim($oneLineFromCsv[4]);
  36.             $old_translation $this->translationRepository->findOneBy(['english' => $english ]);
  37.             if ($old_translation) {
  38.                 if ($old_translation->getEnglish() == $english &&
  39.                     $old_translation->getFrench() == $french &&
  40.                     $old_translation->getGerman() == $german &&
  41.                     $old_translation->getSpanish() == $spanish &&
  42.                     $old_translation->getRussian() == $russian
  43.                 ) {
  44.                    continue;
  45.                 } else {
  46.                     $old_translation
  47.                         ->setFrench($french)
  48.                         ->setGerman($german)
  49.                         ->setSpanish($spanish)
  50.                         ->setRussian($russian);
  51.                     $this->manager->flush();
  52.                 }
  53.             }
  54.             else{
  55.                 $new_translation = new Translation();
  56.                 $new_translation->setEnglish($english)
  57.                     ->setFrench($french)
  58.                     ->setGerman($german)
  59.                     ->setSpanish($spanish)
  60.                     ->setRussian($russian);
  61.                 $this->manager->persist($new_translation);
  62.                 $this->manager->flush();
  63.             }
  64.         }
  65.         return null;
  66.     }
  67.     public function __construct(ContainerInterface $containerTranslationRepository $translationRepositoryEntityManagerInterface $manager)
  68.     {
  69.         $this->container $container;
  70.         $this->manager $manager;
  71.         $this->translationRepository $translationRepository;
  72.     }
  73. }