addArgument('name', InputArgument::REQUIRED, 'Plugin name, for example foo/my-admin'); } /** * @param InputInterface $input * @param OutputInterface $output * @return int */ protected function execute(InputInterface $input, OutputInterface $output): int { $name = $input->getArgument('name'); $output->writeln("Enable plugin $name"); if (!strpos($name, '/')) { $output->writeln('Bad name, name must contain character \'/\' , for example foo/MyAdmin'); return self::FAILURE; } $config_file = config_path() . "/plugin/$name/app.php"; if (!is_file($config_file)) { $output->writeln("$config_file not found"); return self::FAILURE; } $config = include $config_file; if (!isset($config['enable'])) { $output->writeln("Config key 'enable' not found"); return self::FAILURE; } if ($config['enable']) { return self::SUCCESS; } $config_content = file_get_contents($config_file); $config_content = preg_replace('/(\'enable\' *?=> *?)(false)/', '$1true', $config_content); file_put_contents($config_file, $config_content); return self::SUCCESS; } }