我正在擴展一個使用CI編寫的Web應用程序來與Visual Basic應用程序進行通信。使用CodeIgniter的SOAP服務器
首先,我想知道我選擇的解決方案是否是一個不錯的選擇...我以前曾經在xml-rpc上工作過,並且將手放在REST服務中,但對我來說SOAP解決方案看起來更完整。我錯了嗎?
無論如何,這個問題到現在爲止,我不能打電話給我的控制器內部功能...這裏是我的代碼:
class Webservice extends CI_Controller {
function __construct() {
parent::__construct();
}
public function index() {
$server = new SoapServer("http://www.site.com/test.wsdl");
$server->setObject($this);
//$server->addFunction('sayHello');
$server->handle();
}
function sayHello($name) {
$salute = "Hi " . $name . ", it's working!";
return $salute;
}
}
我編譯WSDL文件,但之後我打電話site.com/ web服務我得到以下錯誤:
SoapServer的::調用addFunction()[soapserver.addfunction]:嘗試添加不存在的功能 '的sayHello'
我也試過路過$ CI = & get_in立場()到$ server-> setObject(),但我認爲它與傳遞$ this相同。
更新 - 12/09/2011
我想通了...有沒有必要使用調用addFunction()如果已設置整個對象,$這。 SOAP只會調用wsdl文件中聲明的函數,無論如何,我似乎無法將函數設置爲privete/protected。
說了我不確定繼續使用SOAP ... tutorial written by Phil Sturgeon顯示了一個使用REST方法返回不同響應類型(json,xml,serialize,csv)的好解決方案。
感謝您的回覆!所以,我明白這個協議不是PHP所必需的,但是VB應用程序呢?我希望讓需要與我的應用程序接口的開發人員的生活更輕鬆,並且我知道很多VB開發人員都熟悉SOAP。它更容易解析與VB的JSON? – Luciano
誰知道,但它是可能的:http://jayrock.berlios.de/ –