* */ class ModuleDeactivateCommand extends BaseModuleGenerate { protected function configure() { $this ->setName("module:deactivate") ->setDescription("Deactivate a module") ->addArgument( "module" , InputArgument::REQUIRED, "module to deactivate" ) ; } protected function execute(InputInterface $input, OutputInterface $output) { $moduleCode = $this->formatModuleName($input->getArgument("module")); $module = ModuleQuery::create()->findOneByCode($moduleCode); if (null === $module) { throw new \RuntimeException(sprintf("module %s not found", $moduleCode)); } try { $moduleReflection = new \ReflectionClass($module->getFullNamespace()); $moduleInstance = $moduleReflection->newInstance(); $moduleInstance->deActivate(); } catch (\Exception $e) { throw new \RuntimeException(sprintf("Deactivation fail with Exception : [%d] %s", $e->getCode(), $e->getMessage())); } //impossible to change output class in CommandTester... if (method_exists($output, "renderBlock")) { $output->renderBlock(array( '', sprintf("Deactivation succeed for module %s", $moduleCode), '' ), "bg=green;fg=black"); } } }