Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
class Test {
/**
*
* @var string
*/
var $single;
/**
* @minOccurs 0
* @maxOccurs unbounded
* @var string
*/
var $str;
}
/**
*
* @param Test $test
* @return Test
*/
function testFunction(Test $test) {
$test->str = array_reverse($test->str);
return $test;
}
$ws = new WS1c('http://fragster.ru/testservice', 'fragster');
$ws->methods[] = new ReflectionFunction('testFunction');
</code>
на выходе получаешь вот это: http://fragster.ru/tmp/test.php?wsdl (можно вызывать, работает)<?xml version= '1.0' encoding= 'UTF-8' ?>
<xs:schema elementFormDefault="qualified" targetNamespace="http://ib.pentegy.vab.ua/portmone" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://ib.pentegy.vab.ua/portmone">
<xs:import schemaLocation="ХХХХХ.xsd" namespace="http://ХХХХХ.ua"/>
<xs:element name="НалогНапример">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="request" nillable="true" type="q1:НалогНапримерRequest"
xmlns:q1="http://ХХХХХ.ua"/>
</xs:sequence>
</xs:complexType>
</xs:element>
.......
</xs:schema>
if (isset ( $_GET ['wsdl'] )) {
$soap = new Zend_Soap_AutoDiscover ();
} else {
$soap = new Zend_Soap_Server ( $url_to_wsdl );
}
$soap->setClass ( $class_name );
$soap->handle ();
<wsdl:import namespace="http://Что-то" location="Здесь.wsdl"/>
<wsdl:types>
<xsd:schema targetNamespace="http://ИизЭтогоМеста/Imports">
<xsd:import schemaLocation="ClientService.xsd" namespace="http://Здесь/client"/>
<xsd:import schemaLocation="ClientService.xsd" namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>
<xsd:import schemaLocation="ClientService.xsd" namespace="http://ХХХХХ.ua"/>
</xsd:schema>
<wsp:Policy orawsp:provides="{http://docs.oasis-open.org/ns/opencsa/sca/200903}authentication, {http://docs.oasis-open.org/ns/opencsa/sca/200903}clientAuthentication, {http://docs.oasis-open.org/ns/opencsa/sca/200903}clientAuthentication.message, {http://schemas.oracle.com/ws/2006/01/policy}token.usernamePassword" wsu:Id="wss_username_token_service_policy">
<sp:SupportingTokens>
<wsp:Policy>
<sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssUsernameToken10/>
</wsp:Policy>
</sp:UsernameToken>
</wsp:Policy>
</sp:SupportingTokens>
</wsp:Policy>
Пишем SOAP клиент-серверное приложение на PHP