Samuel Vogel wrote:
> Am 01.06.2009 20:05 Uhr, schrieb Shawn McKenzie:
>> Shawn McKenzie wrote:
>>
>>> Samuel Vogel wrote:
>>>
>>>> Hey,
>>>>
>>>> I would like to know how I can instantiate the types that I get via the
>>>> __getTypes() function or know if this is even possible.
>>>> I am asking because I have a webservice in which all functions
>>>> expect an
>>>> specific object to be passed to them, rather than a list of arguments.
>>>> And I am hoping that I do not have to code all those objects into my
>>>> PHP
>>>> Code, but rather instantiate them kinda from the wsdl!
>>>>
>>>> Here is what I have:
>>>>
>>>> $map = array('Credentials' => 'Credentials',
>>>> 'GetSourceTextRequest'
>>>> => 'GetSourceTextRequest');
>>>> $ws = new SoapClient('http://192.168.0.1:8080/Service?wsdl',
>>>> array('classmap' => $map));
>>>>
>>>> $test = new GetSourceTextRequest();
>>>>
>>>> It does not work this way however, I do get a class not found failure.
>>>> How can I instantiate an object from SOAP?
>>>>
>>>> __getTypes() gives me something like this:
>>>>
>>>> struct Credentials {
>>>> string Password;
>>>> string Username;
>>>> }
>>>>
>>>> Any hints would be appreciated!
>>>>
>>>> Regards,
>>>> Samy
>>>>
>>>>
>>> You are mapping SOAP types to PHP classes, so you need to define the PHP
>>> class first:
>>>
>>> class Credentials {
>>> public $Password
>>> public $Username
>>> }
>>>
>>> $map = array('Credentials' => 'Credentials', 'GetSourceTextRequest' =>
>>> 'GetSourceTextRequest');
>>>
>>> $ws = new SoapClient('http://192.168.0.1:8080/Service?wsdl',
>>> array('classmap' => $map));
>>>
>>> $test = new Credentials();
>>>
>>>
>>
>> Doh! I just reread your post and see that you don't want to define all
>> the classes. That would be the best way to go. If not, most likely
>> you'll have to parse the xml and build the classes and eval() or look
>> for something already made, like:
>> http://code.google.com/p/wsdl2php-interpreter/downloads/list
>>
>>
> So a direct instantiation is not possible?
> Is there nothing like
>
> $test = new $ws->Credentials();
>
> or something?
>
> Regards,
> Samy
>
No.
--
Thanks!
-Shawn
http://www.spidean.com
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php