PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

SoapClient->__construct()> <is_soap_fault
Last updated: Fri, 05 Sep 2008

view this page in

SoapClient->__call()

(No version information available, might be only in CVS)

SoapClient->__call() Ausführen eines SOAP-Aufrufs (deprecated)

Beschreibung

SoapClient
mixed __call ( string $function_name , array $arguments [, array $options [, array $input_headers [, array $output_headers ]]] )

Diese Methode is obsolet, benutzen Sie SoapClient->__soapCall().



add a note add a note User Contributed Notes
SoapClient->__call()
bananos at dev dot co dot ua
11-Apr-2008 02:13
I'm writing PHP SOAP client (based on php_soap extension) which uses Google AdService,
today, I tried to create sample Ad using   AdService::addAds()  and discovered that my SOAP library does not pass
"headline", "description1", "description2"  parameters in SOAP request.

First, I thought that this was something wrong with my data, coz I was getting validation errors like
"One or more input elements failed validation."   Then I decided to take a look at WSDL description
https://adwords.google.com/api/adwords/v11/AdService?wsdl

And voilà !  I've found this:

<complexType name="Ad" abstract="true">
<sequence>
  <element name="adGroupId" type="xsd:int"/>
  <element name="adType" nillable="true" minOccurs="0" type="impl:AdType"/>
  <element name="destinationUrl" nillable="true" minOccurs="0" type="xsd:string"/>
  <element name="disapproved" type="xsd:boolean"/>
  <element name="displayUrl" nillable="true" minOccurs="0" type="xsd:string"/>
  <element name="exemptionRequest" nillable="true" minOccurs="0" type="xsd:string"/>
  <element name="id" type="xsd:long"/>
  <element name="status" nillable="true" minOccurs="0" type="impl:AdStatus"/>
</sequence>

</complexType>

There is no any ''description", "headline1", "headline2", however there is another complexType

<complexType name="TextAd">
    <complexContent>
    <extension base="impl:Ad">
    <sequence>

<element name="description1" nillable="true" type="xsd:string"/>
<element name="description2" nillable="true" type="xsd:string"/>
<element name="headline" nillable="true" type="xsd:string"/>
</sequence>

</extension>
</complexContent>
</complexType>

So, the thing is when you are working with php_soap be aware of complexType extensions which does not work in php_soap when you try to do things like:

<?php

$client
= new
   
SoapClient(
      
"https://adwords.google.com/api/adwords/v11/AdService?wsdl",
        array( 
'trace'      => true,
               
'exceptions' => true,
             )
     
    );

$entropy     = substr(md5(rand(0, time())), 0, 10);
//create Ad test structure
$sample_ad =  array(
              
"id" => 0,
              
"adGroupId" => 0,
              
"adType" => 'TextAd',
              
"disapproved" => false,
              
"destinationUrl" => 'http://test.com',
              
"displayUrl" => 'www.Test.com',
              
"status" => "Paused", //  Enabled / Disabled
              
"descr_iption1" => 'D1_'.$entropy,
              
"des_cription2" => 'D2_'.$entropy,
              
"head_line" => 'H_'.$entropy
       
);

$client->addAds(array('ads' => array($sample_ad) );
?>
Samil Abud
19-Dec-2007 09:00
Hi,
This is a good example, for the SOAP function "__call".
However it is deprecated.

<?php
$wsdl
= "http://webservices.tekever.eu/ctt/?wsdl";
$int_zona = 5;
$int_peso = 1001;
$cliente = new SoapClient($wsdl);
print
"<p>Envio Internacional: ";
$vem = $cliente->__call('CustoEMSInternacional',array($int_zona, $int_peso));
print
$vem;
print
"</p>";
?>

SoapClient->__construct()> <is_soap_fault
Last updated: Fri, 05 Sep 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites