addArgument('name', InputArgument::REQUIRED, 'Consumer name'); } /** * @param InputInterface $input * @param OutputInterface $output * @return int */ protected function execute(InputInterface $input, OutputInterface $output): int { $name = $input->getArgument('name'); $output->writeln("Make consumer $name"); $path = ''; $namespace = 'app\\queue\\redis'; if ($pos = strrpos($name, DIRECTORY_SEPARATOR)) { $path = substr($name, 0, $pos + 1); $name = substr($name, $pos + 1); $namespace .= '\\' . str_replace(DIRECTORY_SEPARATOR, '\\', trim($path, DIRECTORY_SEPARATOR)); } $class = Util::nameToClass($name); $queue = Util::classToName($name); $file = app_path() . "/queue/redis/{$path}$class.php"; $this->createConsumer($namespace, $class, $queue, $file); return self::SUCCESS; } /** * @param $class * @param $queue * @param $file * @return void */ protected function createConsumer($namspace, $class, $queue, $file) { $path = pathinfo($file, PATHINFO_DIRNAME); if (!is_dir($path)) { mkdir($path, 0777, true); } $controller_content = <<