Response xml format change support with backward compatibility
This commit is contained in:
parent
3f2a99adf6
commit
bb95a6cb45
|
@ -32,7 +32,10 @@ class RpcLiteralResponseMessageBinder implements MessageBinderInterface
|
|||
{
|
||||
$this->typeRepository = $typeRepository;
|
||||
|
||||
return $this->processType($messageDefinition->getOutput()->get('return')->getType(), $message);
|
||||
$parts = $messageDefinition->getOutput()->all();
|
||||
$part = array_shift($parts);
|
||||
|
||||
return $this->processType($part->getType(), $message);
|
||||
}
|
||||
|
||||
private function processType($phpType, $message)
|
||||
|
|
|
@ -96,6 +96,7 @@ class AnnotationClassLoader extends Loader
|
|||
}
|
||||
|
||||
$serviceReturn = $annotation->getPhpType();
|
||||
$serviceXmlReturn = $annotation->getXmlType();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -116,7 +117,11 @@ class AnnotationClassLoader extends Loader
|
|||
throw new \LogicException(sprintf('@Soap\Result non-existent for "%s".', $method->getName()));
|
||||
}
|
||||
|
||||
$serviceMethod->setOutput($this->loadType($serviceReturn));
|
||||
if (!isset($serviceXmlReturn) || !$serviceXmlReturn) {
|
||||
$serviceXmlReturn = 'return';
|
||||
}
|
||||
|
||||
$serviceMethod->setOutput($this->loadType($serviceReturn), $serviceXmlReturn);
|
||||
|
||||
$definition->addMethod($serviceMethod);
|
||||
}
|
||||
|
|
|
@ -63,12 +63,19 @@ class Method
|
|||
|
||||
public function addInput($name, $type)
|
||||
{
|
||||
$inName = $this->name;
|
||||
$this->input = new Message($inName);
|
||||
|
||||
$this->input->add($name, $type);
|
||||
}
|
||||
|
||||
public function setOutput($type)
|
||||
public function setOutput($type, $name = 'return')
|
||||
{
|
||||
$this->output->add('return', $type);
|
||||
if ('return' !== $name) {
|
||||
$this->output = new Message($name);
|
||||
}
|
||||
|
||||
$this->output->add($name, $type);
|
||||
}
|
||||
|
||||
public function getHeaders()
|
||||
|
|
Loading…
Reference in New Issue