From 958efd34319a4de8c9c7ae2b47ce5095a6d2958c Mon Sep 17 00:00:00 2001 From: Francis Besset Date: Thu, 1 Sep 2011 19:40:44 +0200 Subject: [PATCH] Replaced QName->getNamespace() by ServiceDefinition->getNamespace() for headers --- Resources/doc/tutorial/header.rst | 2 ++ ServiceBinding/ServiceBinder.php | 9 +-------- Soap/SoapHeader.php | 5 +++++ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Resources/doc/tutorial/header.rst b/Resources/doc/tutorial/header.rst index d1dc849..c3928df 100644 --- a/Resources/doc/tutorial/header.rst +++ b/Resources/doc/tutorial/header.rst @@ -22,6 +22,8 @@ Controller public function helloAction(array $names) { $soapHeaders = $this->container->get('request')->getSoapHeaders(); + + // You can use '1234' !== (string) $soapHeaders->get('api_key') if (!$soapHeaders->has('api_key') || '1234' !== $soapHeaders->get('api_key')->getData()) { throw new \SoapFault("INVALID_API_KEY", "The api_key is invalid."); } diff --git a/ServiceBinding/ServiceBinder.php b/ServiceBinding/ServiceBinder.php index 01c4ebd..f85d32c 100644 --- a/ServiceBinding/ServiceBinder.php +++ b/ServiceBinding/ServiceBinder.php @@ -67,7 +67,7 @@ class ServiceBinder $this->requestHeaderMessageBinder->setHeader($header); $data = $this->requestHeaderMessageBinder->processMessage($methodDefinition, $data, $this->definition->getDefinitionComplexTypes()); - return $this->createSoapHeader($headerDefinition, $data); + return new SoapHeader($this->definition->getNamespace(), $headerDefinition->getName(), $data); } public function processServiceMethodArguments($method, $arguments) @@ -86,11 +86,4 @@ class ServiceBinder return $this->responseMessageBinder->processMessage($methodDefinition, $return, $this->definition->getDefinitionComplexTypes()); } - - protected function createSoapHeader(Header $headerDefinition, $data) - { - $qname = QName::fromPackedQName($headerDefinition->getType()->getXmlType()); - - return new SoapHeader($qname->getNamespace(), $headerDefinition->getName(), $data); - } } \ No newline at end of file diff --git a/Soap/SoapHeader.php b/Soap/SoapHeader.php index e24d58c..22b0fbd 100644 --- a/Soap/SoapHeader.php +++ b/Soap/SoapHeader.php @@ -23,6 +23,11 @@ class SoapHeader $this->data = $data; } + public function __toString() + { + return $this->data; + } + public function getNamespace() { return $this->namespace;