ID: 32410
Updated by: sjoerd@php.net
Reported By: gehrig at ishd dot de
-Status: Open
+Status: Verified
Bug Type: Documentation problem
Operating System: Irrelevant
PHP Version: Irrelevant
New Comment:
The paragraph mentioned in the original bug report is already removed.
Suggestions to improve the documentation on SoapHeader:
1. Add a link to SoapServer::addSoapHeader to the "See also" section of
SoapHeader::SoapHeader.
2. In the documentation of SoapServer::addSoapHeader, describe that the
object is of type SoapHeader.
3. In the documentation of SoapClient::__setSoapHeaders, describe that
soapheaders is either a SoapHeader or an array of SoapHeaders, or make a
reference to the SoapHeader documentation.
The previous comment from bisho at onirica notes some valid points
about the calling of functions to handle Soap headers by the SoapServer.
This is poorly documented and doesn't work reliably. However, I suggest
creating a seperate bug report for that.
Previous Comments:
------------------------------------------------------------------------
[2008-01-08 15:42:38] bisho at onirica dot com
I also miss information about this in the doc:
If the header part "Example" has use="literal" the function with the
same name ("Example") will be executed on the SoapServer.
But:
a) With use="encoded" nothing gets executed. This drove me crazy and
should be mentioned on documentation.
b) The function "Example" does not receive arguments. So, how you are
supposed to process the header? I'm still trying to solve this.
------------------------------------------------------------------------
[2007-03-01 14:08:44] michiel at worthit dot nl
When using SoapServer I too was in need for returning SoapHeaders.
Confused by the documentation I started browsing the CVS and ended at
http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/server023.phpt?view=markup&sortby=date,
where the function 'addSoapHeader' is tested.
Basically, you can define your headers like you should in your wsdl and
then do something like this.
---
function foo() {
$server = $GLOBALS['server'];
$server->addSoapHeader(new SoapHeader('my.wsdl', 'bar', true));
// optionally return data
}
$server = $GLOBALS['server'] = new SoapServer('my.wsdl'[, ...]);
$server->addFunction('foo');
$server->handle();
---
I hope someone found this comment to be useful ;).
------------------------------------------------------------------------
[2007-02-26 09:38:57] philip@php.net
David Mytton is documenting ref.SOAP, assigning this to him.
------------------------------------------------------------------------
[2005-12-23 08:07:07] cat_lan at 163 dot com
Sorry, my english is poor, see code below:
-------------------------
function foo()
{
return new soapHeader(...);
}
soapServer::addFunction("foo");
--------------------------
---about the function name "foo":
.wsdl----------------------->|
<header message="..." part="foo" use="literal" />
post data------------------->|
<soap:Header><foo>........</foo></soap:Header>
------------------------------------------------------------------------
[2005-07-09 20:25:17] jplush76 at gmail dot com
I agree it would be nice to have more information here. Soap headers
are a big part of web services and the manual treats them as a glace
over
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/32410--
Edit this bug report at http://bugs.php.net/?id=32410&edit=1