diff --git a/module/Import/Module.php b/module/Import/Module.php index c883736a612a2c6f2b5b1bdeb44d0df395eb8535..8ea663547479293ad37fddd4eb2785d34842c0fb 100644 --- a/module/Import/Module.php +++ b/module/Import/Module.php @@ -40,20 +40,22 @@ class Module { return [ // command - 'import --service= --etablissement= [--source-code=] [--synchronize=] [--em=]' => "Importer toutes les données d'un service d'un établissement.", + 'import --service= --etablissement= [--source-code=] [--synchronize=] [--verbose] [--em=]' => "Importer toutes les données d'un service d'un établissement.", // parameters ['--service', "Requis. Identifiant du service, ex: 'variable'"], ['--etablissement', "Requis. Identifiant de l'établissement, ex: 'UCN'"], ['--source-code', "Facultatif. Source code du seul enregistrement à importer"], ['--synchronize', "Facultatif. Réaliser ou non la synchro SRC_XXX => XXX. Valeurs possibles: 0, 1. Valeur par défaut: 1."], + ['--verbose', "Facultatif. Activer les logs verbeux (debug)."], ['--em', "Facultatif. Nom de l'EntityManager à utiliser. Valeur par défaut: 'orm_default'."], // command - 'import-all --etablissement= [--synchronize=] [--em=]' => "Importer toutes les données de tous les serviceq d'un établissement.", + 'import-all --etablissement= [--synchronize=] [--verbose] [--em=]' => "Importer toutes les données de tous les serviceq d'un établissement.", // parameters ['--etablissement', "Requis. Identifiant de l'établissement, ex: 'UCN'"], ['--breakOnServiceNotFound', "Facultatif. Faut-il stopper si un service appelé n'existe pas. Valeurs possibles: 0, 1. Valeur par défaut: 1."], ['--synchronize', "Facultatif. Réaliser ou non la synchro SRC_XXX => XXX. Valeurs possibles: 0, 1. Valeur par défaut: 1."], + ['--verbose', "Facultatif. Activer les logs verbeux (debug)."], ['--em', "Facultatif. Nom de l'EntityManager à utiliser. Valeur par défaut: 'orm_default'."], // command diff --git a/module/Import/config/import.config.php b/module/Import/config/import.config.php index 6a0bf05794bdda53aec19ba6c388747e0ac5aaa7..ff4c2a7bd3b17e51512b6f0e25b18b4fc48481ab 100644 --- a/module/Import/config/import.config.php +++ b/module/Import/config/import.config.php @@ -67,7 +67,7 @@ return [ 'import-console' => [ 'type' => Simple::class, 'options' => [ - 'route' => 'import --service= --etablissement= [--source-code=] [--synchronize=] [--em=]', + 'route' => 'import --service= --etablissement= [--source-code=] [--synchronize=] [--verbose] [--em=]', 'defaults' => [ 'controller' => Import\Controller\ImportController::class, 'action' => 'import-console', @@ -77,7 +77,7 @@ return [ 'import-all-console' => [ 'type' => Simple::class, 'options' => [ - 'route' => 'import-all --etablissement= [--breakOnServiceNotFound=] [--synchronize=] [--em=]', + 'route' => 'import-all --etablissement= [--breakOnServiceNotFound=] [--synchronize=] [--verbose] [--em=]', 'defaults' => [ 'controller' => Import\Controller\ImportController::class, 'action' => 'import-all-console', diff --git a/module/Import/src/Import/Controller/ImportController.php b/module/Import/src/Import/Controller/ImportController.php index 75ed63162a24cdeea8f53baab3302c7984970bd8..481fc4360bd89adabb91a7088ea15e3a62b4445e 100644 --- a/module/Import/src/Import/Controller/ImportController.php +++ b/module/Import/src/Import/Controller/ImportController.php @@ -132,19 +132,21 @@ class ImportController extends AbstractActionController * avec les tables destinations. * * @return ViewModel + * @throws StructureNotFoundException */ public function importAction() { $service = $this->params('service'); $codeStructure = $this->params('etablissement'); // ex: 'UCN' $sourceCode = $this->params('source_code'); + $verbose = (bool) $this->params('verbose', 0); $queryParams = $this->params()->fromQuery(); $etablissement = $this->fetchEtablissementByCodeStructure($codeStructure); $stream = fopen('php://memory','r+'); - $this->setLoggerStream($stream); + $this->setLoggerStream($stream, $verbose); $this->importService->import($service, $etablissement, $sourceCode, $queryParams); @@ -165,15 +167,17 @@ class ImportController extends AbstractActionController * des données obtenues avec les tables destinations. * * @return ViewModel + * @throws StructureNotFoundException */ public function importAllAction() { $codeStructure = $this->params('etablissement'); // ex: 'UCN' + $verbose = (bool) $this->params('verbose', 0); $etablissement = $this->fetchEtablissementByCodeStructure($codeStructure); $stream = fopen('php://memory','r+'); - $this->setLoggerStream($stream); + $this->setLoggerStream($stream, $verbose); $this->importService->importAll($etablissement); @@ -196,6 +200,7 @@ class ImportController extends AbstractActionController { $codeEtablissement = $this->params('etablissement'); $sourceCodeThese = $this->params('source_code'); + $verbose = (bool) $this->params('verbose', 0); if (! $sourceCodeThese) { throw new LogicException("Le source code de la thèse est requis"); @@ -210,7 +215,7 @@ class ImportController extends AbstractActionController } $stream = fopen('php://memory','r+'); - $this->setLoggerStream($stream); + $this->setLoggerStream($stream, $verbose); $this->importService->updateThese($these); @@ -226,6 +231,9 @@ class ImportController extends AbstractActionController ]); } + /** + * @throws StructureNotFoundException + */ public function importConsoleAction() { $service = $this->params('service'); @@ -233,8 +241,9 @@ class ImportController extends AbstractActionController $sourceCode = $this->params('source-code'); $synchronize = (bool) $this->params('synchronize', 1); $emName = $this->params('em', 'orm_default'); + $verbose = (bool) $this->params('verbose', 0); - $this->setLoggerStream('php://output'); + $this->setLoggerStream('php://output', $verbose); $etablissement = $this->fetchEtablissementByCodeStructure($codeStructure); @@ -254,16 +263,20 @@ class ImportController extends AbstractActionController ) . PHP_EOL; } + /** + * @throws StructureNotFoundException + */ public function importAllConsoleAction() { $codeStructure = $this->params('etablissement'); // ex: 'UCN' $breakOnServiceNotFound = (bool) $this->params('breakOnServiceNotFound', 1); $synchronize = (bool) $this->params('synchronize', 1); $emName = $this->params('em', 'orm_default'); + $verbose = (bool) $this->params('verbose', 0); $etablissement = $this->fetchEtablissementByCodeStructure($codeStructure); - $this->setLoggerStream('php://output'); + $this->setLoggerStream('php://output', $verbose); /** @var EntityManager $entityManager */ $entityManager = $this->getServiceLocator()->get("doctrine.entitymanager.$emName"); @@ -282,10 +295,11 @@ class ImportController extends AbstractActionController /** * @param string|resource $stream + * @param bool $verbose */ - private function setLoggerStream($stream) + private function setLoggerStream($stream, $verbose = false) { - $filter = new Priority(Logger::INFO); + $filter = new Priority($verbose ? Logger::DEBUG : Logger::INFO); $writer = new Stream($stream); $writer->addFilter($filter);