src/Command/AddDoliTermeCommand.php line 10

Open in your IDE?
  1. <?PHP
  2. // src/Command/GenerateTraductionCommand.php
  3. namespace App\Command;
  4. use Symfony\Component\Console\Command\Command;
  5. use Symfony\Component\Console\Input\InputInterface;
  6. use Symfony\Component\Console\Output\OutputInterface;
  7. use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
  8. class AddDoliTermeCommand extends ContainerAwareCommand 
  9. {
  10.     
  11.     protected function configure(){
  12.         $this
  13.         ->setName('app:add-doli-termes')
  14.         ->setDescription('Récupère les nouveaux termes générés avec la commande symfony')
  15.         ->setHelp('Pour générer ce fichier symfony il faut lancer la commande : php bin/console translation:update --dump-messages --force fr');
  16.     }
  17.     protected function execute(InputInterface $inputOutputInterface $output)
  18.     {
  19.         // Init
  20.         exec('php bin/console cache:clear');
  21.         exec('php bin/console translation:update --force walkinn');
  22.         exec('php bin/console cache:clear --no-debug');
  23.         // Service (old style)
  24.         $traductionService $this->getContainer()->get('app.service.traduction');
  25.         // On récupère le fichier généré par symfony
  26.         $fichierTrad simplexml_load_file("translations/walkinn+intl-icu.walkinn.xlf");
  27.         
  28.         $arrTrad = array();
  29.         foreach ($fichierTrad->file->body->{'trans-unit'} as $item) {
  30.             $itemJson json_encode($item);    
  31.             $arrItem json_decode($itemJsonTRUE);
  32.             array_push($arrTrad,$arrItem);
  33.         }
  34.         $fichierTrad simplexml_load_file("translations/messages+intl-icu.walkinn.xlf");
  35.         
  36.         foreach ($fichierTrad->file->body->{'trans-unit'} as $item) {
  37.             $itemJson json_encode($item);    
  38.             $arrItem json_decode($itemJsonTRUE);
  39.             array_push($arrTrad,$arrItem);
  40.         }
  41.         
  42.         $output->writeln('Liste des termes (système):');
  43.         $arrNewTermes $traductionService->saveDoliTradFromSymfonyFile($arrTrad);
  44.         
  45.         foreach($arrNewTermes as $terme)
  46.         {
  47.             $output->writeln($terme);
  48.         }
  49.         $output->writeln('Liste des termes (micro-data):');
  50.         $arrNewTermes $traductionService->saveDoliTradFromSymfonyData();
  51.         
  52.         foreach($arrNewTermes as $terme)
  53.         {
  54.             $output->writeln($terme);
  55.         }
  56.         $arrUpdateTermes $traductionService->updateSymfonyFileFromDoliTrad();
  57.         if(count($arrNewTermes) > 0)
  58.         {
  59.             $output->writeln('Termes ajoutés avec succès!');
  60.         } else 
  61.         {
  62.             $output->writeln("Aucun nouveau terme n'a été détecté");
  63.         }
  64.         return 1;
  65.     }
  66. }