diff --git a/src/BeSimple/SoapBundle/ServiceDefinition/Dumper/Wsdl.php b/src/BeSimple/SoapBundle/ServiceDefinition/Dumper/Wsdl.php index 455d382..e8e4721 100644 --- a/src/BeSimple/SoapBundle/ServiceDefinition/Dumper/Wsdl.php +++ b/src/BeSimple/SoapBundle/ServiceDefinition/Dumper/Wsdl.php @@ -31,12 +31,18 @@ class Wsdl extends BaseWsdl public function getType($type) { if ($type instanceof Type) { - $xmlType = $type->getXmlType(); - } else { - $xmlType = $this->typeRepository->getXmlTypeMapping($type); + return $type->getXmlType(); } - return $xmlType ?: $this->addComplexType($type); + if ('\\' === $type[0]) { + $type = substr($type, 1); + } + + if (!$xmlType = $this->typeRepository->getXmlTypeMapping($type)) { + $xmlType = $this->addComplexType($type); + } + + return $xmlType; } /** @@ -51,10 +57,6 @@ class Wsdl extends BaseWsdl return $this->classMap[$type]; } - if ($type[0] == '\\') { - $type = substr($type, 1); - } - return str_replace('\\', '.', $type); } @@ -75,4 +77,4 @@ class Wsdl extends BaseWsdl return $bindingOperation; } -} \ No newline at end of file +}