2011-01-13 105 views
1

我正嘗試使用Zend框架中的自動發現類生成wsdl文件。由此產生的定義似乎不可用,並且後續功能不起作用。如何使用zend肥皂生成wsdl

下面是我使用的代碼...

<?php 

/** 
* Returns Hello World as a string. 
* 
* @return string 
*/ 
function hello() 
{ 
    return "Hello World"; 
} 


if(isset($_GET['wsdl'])) 
{ 
    $autodiscover = new Zend_Soap_AutoDiscover(); 
    $autodiscover->addFunction('hello'); 
    $autodiscover->handle(); 
} 
else if(isset($_GET['client'])) 
{ 
    $client = new Zend_Soap_Client("http://localhost/service.php"); 
    echo $client->hello(); 
} 
else 
{ 
    $server = new Zend_Soap_Server("http://localhost/service.php?wsdl"); 
    $server->addFunction('hello'); 
    $server->handle(); 
} 

?> 

這一切都威姆斯默默失敗,調用http://localhost/service.php?wsdl剛剛去世默默不產生WSDL定義。可能有人請給我,我做錯了什麼的想法:)

非常感謝

回答

1

嘗試增加docblocking到Hello功能。 WSDL生成器依賴它來生成適當的WSDL文件。 http://framework.zend.com/manual/en/zend.soap.autodiscovery.html請參閱該鏈接中的重要註釋。

+0

我把下面的註釋塊以上的Hello()方法: \t/** \t *返回的Hello World作爲一個字符串。 \t * \t * @return string \t */ 它仍然沒有什麼。 :| – 2011-01-13 16:56:11

2

我試過你發佈的代碼,除了我添加了:require('Zend/Soap/AutoDiscover.php');。有效。

0

是的,你失蹤require('Zend/Soap/AutoDiscover.php');就這樣。