projectDir = $kernel->getProjectDir(); $this->params = $params; $this->container = $container; $this->projectDir = $kernel->getProjectDir(); $this->collect = $collect; $this->exportRepository = $exportRepository; $this->elementGabValue = $elementGabValue; $this->projectRepository = $projectRepository; } protected function configure() { $this // the name of the command (the part after "bin/console") ->setName('export:json') // the short description shown while running "php bin/console list" ->setDescription('Get Export from Maestro') // add 'processDate' argument ->addArgument('export', InputArgument::REQUIRED, "Veuillez préciser l'export à exporter") ->addArgument('origin', InputArgument::OPTIONAL, "Veuillez préciser l'origin") ->addArgument('process_date', InputArgument::OPTIONAL, 'Date of the process', date_create()->format('Y-m-d')); } public function execute(InputInterface $input, OutputInterface $output) { $processDate = $input->getArgument('process_date'); $idExport = $input->getArgument('export'); $crossOrigin = $input->getArgument('origin'); $response = ''; //HERE READ $elementsArrayToParse = $this->exportRepository->getElementsExportById($idExport); $elementIds = array(); foreach ($elementsArrayToParse as $arrayByElemeType) { if (!empty($arrayByElemeType['elementsPIM'])) { $elementIds = array_merge($elementIds, $arrayByElemeType['elementsPIM']); } } //$elements = $this->elementGabValue->listGabValue(null, null, $idExport, null, null,[]); $response = new StreamedResponse(); $response->setCallback(function () use ($elementIds, $idExport) { $idProject = $this->exportRepository->getIdProjectFromIdExport($idExport); $arrayField = $this->projectRepository->getArrayFieldByIdProject($idProject); $arrayFieldByElemType = array(); foreach ($arrayField as $arrayToParse) { if (!empty($arrayToParse['elementTypePIM'])) { $arrayFieldByElemType[$arrayToParse['elementTypePIM']] = $arrayToParse["elementTypeFieldsPIM"]; } } $json = $this->collect->getJsonExport($elementIds, $arrayFieldByElemType); $file = fopen('php://output', 'wb'); fputs($file, $json); }); $response->headers->set('Content-Type', 'application/json; charset=utf-8'); $response->headers->set('Content-Disposition', 'attachment; filename="file.json"'); $response->headers->set('Access-Control-Allow-Origin', $crossOrigin); $response->send(); return $response->getStatusCode(); /*header('Content-Type: application/json; charset=utf-8'); header('Content-Disposition: attachment; filename="file.json"'); header('Access-Control-Allow-Origin: ' . $crossOrigin); $output->write($json); return $response;*/ } }