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;
|
$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)
|
private function processType($phpType, $message)
|
||||||
|
|
|
@ -96,6 +96,7 @@ class AnnotationClassLoader extends Loader
|
||||||
}
|
}
|
||||||
|
|
||||||
$serviceReturn = $annotation->getPhpType();
|
$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()));
|
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);
|
$definition->addMethod($serviceMethod);
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,12 +63,19 @@ class Method
|
||||||
|
|
||||||
public function addInput($name, $type)
|
public function addInput($name, $type)
|
||||||
{
|
{
|
||||||
|
$inName = $this->name;
|
||||||
|
$this->input = new Message($inName);
|
||||||
|
|
||||||
$this->input->add($name, $type);
|
$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()
|
public function getHeaders()
|
||||||
|
|
Loading…
Reference in New Issue