好吧,我不是100%確定我明白你在做什麼,所以下面是一個聰明的詞,以防萬一:Cake和JMVC都是全面的MVC框架。如果您試圖將它們組合爲一個有凝聚力的平臺來構建您的應用程序,我強烈建議您查看您的方法/平臺/等。
此外 - 我不是jmvc中的任何方式的專家,所以我我只是假裝在jmvc中處理來自Cake的響應是完全不可能的,因爲某些奇怪的原因。對於這個記錄,想想Cake的迴應是這樣的:
{ "Model" :
[{
'id': 1,
'name' : 'Justin Meyer',
'birthday': '1982-10-20'
},
{
'id': 2,
'name' : 'Brian Moschel',
'birthday': '1983-11-10'
}]
}
Cake已經有了全面的REST服務支持,至少從Cake 1.2開始。您感興趣的庫是HttpSocket。至於json編碼和服務響應,Request Handling包括響應所有請求,內容類型,解碼和編碼json等方式。最後,內置的Set實用程序幾乎可以肯定涵蓋您需要的任何數組操作一兩行。
您感興趣的功能非常基礎,並沒有太多變化。我敢打賭,你已經發現的許多(相當簡單的)解決方案可能仍然有效,也許稍微調整一下。
對於幾乎任何基本的服務端點,您可能會創建一個控制器(而不是AppController - 這是應用程序範圍內的,因此您不能直接調用它)方法,因爲Cake將controller/action路由到您的url中:
蛋糕從不同的應用程序消耗服務應該是這樣的:
http://cakeproject/collect/getInfo
class CollectController extends AppController {
public function getInfo($array = null) {
App::uses('HttpSocket', 'Network/Http');
$http = new HttpSocket();
$http->get('http://jmvcproject/controller/action', $array);
// ...etc.
}
蛋糕從同一個控制器/動作提供服務於不同的應用程序,簡直是:
public function getInfo($array = null) {
$results = $this->Collect->find('all', $array);
// ...fetch the results
}
或者你也可以用foreach($this->data as $data) { ...
來循環該數組以刪除類名。但是如果你的數據將包含相關的模型等,Set可能是最通用和最有彈性的解決方案。
無論如何,HTH
非常感謝您回答我的問題。解釋我的不尋常的方法:它更多的是一個實際的準備工作(爲此我需要JavaScriptMVC)和做一份工作(爲此我需要蛋糕)的實踐性質。不要爲了我不得不承認的一個吝嗇。此外,JavaScriptMVC可以用作編程數據連接jQuery插件的工具。在這種情況下,我只是嘗試爲嵌套的圖像應用程序構建一個接口。 – 2012-08-15 00:01:06