Home » Web Services » SOAP » Bug #6505
Fails to eval proxy generated by SOAP_WSDL::generateProxyCode() with SOAP-0.9.2
Details
| Submitted | 2006-01-17 09:44 UTC |
|---|---|
| From | rsky0711 at gmail dot com |
| Assigned | yunosh |
| Status | Closed |
| Package | SOAP |
| PHP Version | 4.4.1 |
| OS | Mac OS X |
| Roadmaps | (Not assigned) |
Comments
[2006-01-17 09:44 UTC] rsky0711 at gmail dot com
Description:
------------
When use Google Web APIs, I got following error:
PHP Parse error: syntax error, unexpected '=' in /usr/local/share/pear/SOAP/WSDL.php(727) : eval()'d code on line 9
It seems to because of unescaped '$'.
Test script:
---------------
--- WSDL.php.orig 2006-01-17 17:37:47.000000000 +0900
+++ WSDL.php 2006-01-17 17:51:27.000000000 +0900
@@ -670,14 +670,14 @@
}
$class .= " function &$opname_php($args)\n {\n$comments$wrappers" .
- " $result = \$this->call('$opname',\n" .
+ " \$result = \$this->call('$opname',\n" .
" \$v = $argarray,\n" .
" array('namespace' => '$namespace',\n" .
" 'soapaction' => '$soapaction',\n" .
" 'style' => '$opstyle',\n" .
" 'use' => '$use'" .
($this->trace?",\n 'trace' => 1" : '') . "));\n" .
- " return $result;\n" .
+ " return \$result;\n" .
" }\n";
}
Expected result:
----------------
class WebService_GoogleSearchService_GoogleSearchPort extends SOAP_Client
{
function WebService_GoogleSearchService_GoogleSearchPort($path = 'http://api.google.com/search/beta2')
{
$this->SOAP_Client($path, 0);
}
function &doGetCachedPage($key, $url)
{
$result = $this->call('doGetCachedPage',
$v = array('key' => $key, 'url' => $url),
array('namespace' => 'urn:GoogleSearch',
'soapaction' => 'urn:GoogleSearchAction',
'style' => 'rpc',
'use' => 'encoded'));
return $result;
}
function &doSpellingSuggestion($key, $phrase)
{
$result = $this->call('doSpellingSuggestion',
(snip)
return $result;
}
function &doGoogleSearch($key, $q, $start, $maxResults, $filter, $restrict, $safeSearch, $lr, $ie, $oe)
{
$result = $this->call('doGoogleSearch',
(snip)
return $result;
}
}
Actual result:
--------------
class WebService_GoogleSearchService_GoogleSearchPort extends SOAP_Client
{
function WebService_GoogleSearchService_GoogleSearchPort($path = 'http://api.google.com/search/beta2')
{
$this->SOAP_Client($path, 0);
}
function &doGetCachedPage($key, $url)
{
= $this->call('doGetCachedPage',
$v = array('key' => $key, 'url' => $url),
array('namespace' => 'urn:GoogleSearch',
'soapaction' => 'urn:GoogleSearchAction',
'style' => 'rpc',
'use' => 'encoded'));
return ;
}
function &doSpellingSuggestion($key, $phrase)
{
= $this->call('doSpellingSuggestion',
(snip)
return ;
}
function &doGoogleSearch($key, $q, $start, $maxResults, $filter, $restrict, $safeSearch, $lr, $ie, $oe)
{
= $this->call('doGoogleSearch',
(snip)
return ;
}
}