Ben "hizmet tarafını oluştururken", appologies önceden herhangi bir terminoloji için ben munging ediyorum böylece Sabun nispeten yeni.
Bu PHP'nin SoapServer Sınıfı'nı kullanarak kurulum oldu bir Remote Procedure Sabun Servisinden bir PHP dizi dönmek mümkün mü?
Ben kısmen, böyle bir şey görünüyor ki (körü körüne bir öğretici takip ederek inşa edilmiş) bir WSDL var
<message name='genericString'>
<part name='Result' type='xsd:string'/>
</message>
<message name='genericObject'>
<part name='Result' type='xsd:object'/>
</message>
<portType name='FtaPortType'>
<operation name='query'>
<input message='tns:genericString'/>
<output message='tns:genericObject'/>
</operation>
</portType>
Ben arıyorum PHP yöntem sorgu adında ve bu gibi bir şey görünüyor
public function query($arg){
$object = new stdClass();
$object->testing = $arg;
return $object;
}
Bu beni aramak için izin verir
$client = new SoapClient("http://example.com/my.wsdl");
$result = $client->query('This is a test');
ve sonuç dökümü gibi bir şey olacaktır
object(stdClass)[2]
public 'result' => string 'This is a test' (length=18)
Ben sorgu yöntemiyle bir yerli PHP dizi / koleksiyon dönmek istiyorum. Ben bir dizi dönmek için benim sorgu yöntemini değiştirirseniz
public function query($arg) {
$object = array('test','again');
return $object;
}
Bu istemci tarafında bir nesnenin içine tefrika ediyor.
object(stdClass)[2]
public 'item' =>
array
0 => string 'test' (length=4)
1 => string 'again' (length=5)
Bu benim ettik olarak, mantıklı belirli bir xsd:object
benim WSDL Sonucu türü olarak. Ben mümkünse, bir nesne sarılmış değil bir doğal PHP dizi dönmek istiyorum. Benim içgüdüleri, belirli bir Xsd var ki: Beni bu başarmak sağlayacak tip, ama ben bilmiyorum. Ben de bir ArrayObject
olarak tefrika edildikten nesne razıyım.
Teknik detaylar os WSDL beni okullaşma geri tutmayın. Ben temel kavramları fo bir kavrayışa almak için çalışıyorum