Phpro\SoapClient\CodeGenerator\ClassMapGenerator::generate PHP Method

generate() public method

public generate ( Zend\Code\Generator\FileGenerator $file, TypeMap $typeMap ) : string
$file Zend\Code\Generator\FileGenerator
$typeMap Phpro\SoapClient\CodeGenerator\Model\TypeMap
return string
    public function generate(FileGenerator $file, $typeMap)
    {
        $this->ruleSet->applyRules(new ClassMapContext($file, $typeMap));
        return $file->generate();
    }

Usage Example

 /**
  * {@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));
 }
ClassMapGenerator