/** * {@inheritdoc} * @throws \Phpro\SoapClient\Exception\InvalidArgumentException */ protected function execute(InputInterface $input, OutputInterface $output) { $configFile = $input->getOption('config'); if (!$configFile || !$this->filesystem->fileExists($configFile)) { throw InvalidArgumentException::invalidConfigFile(); } $config = (include $configFile); if (!$config instanceof ConfigInterface) { throw InvalidArgumentException::invalidConfigFile(); } $soapClient = new SoapClient($config->getWsdl(), $config->getSoapOptions()); $typeMap = TypeMap::fromSoapClient($config->getNamespace(), $soapClient); $file = new FileGenerator(); $generator = new ClassMapGenerator($config->getRuleSet()); $output->write($generator->generate($file, $typeMap)); }