2010-04-22 61 views
2

情況是這樣的。可能使codeigniter與另一個框架一起工作?

我的客戶(也是程序員)要我開發一個帶有很多函數的地址簿(帶有mysql數據庫)。那麼他可以與我爲他提供的一些課堂方法進行互動。有點像一個API。

情況是,地址簿應用程序變得越來越大,我覺得它更好地使用CodeIgniter與MVC編碼。

我不知道我是否可以使用codeigniter,然後以某種方式給他訪問控制器方法。

例如。在控制器中,您可以使用Web瀏覽器調用某些功能。

public function create_contact($information) {..} 

public function delete_contact($id) {..} 

public function get_contact($id) {..} 

但是,這些只能從網絡瀏覽器調用。我如何讓我的客戶端可以像API一樣訪問這些功能?

然後在自己的應用程序,他可以使用:

$result = $address_book->create_contact($information); 
if($result) { 
    echo "Success"; 
} 

$contact = $address_book->get_contact($id); 

這樣,我的控制器方法處理進出與模型。將沒有意見,因爲我只需要返回模型的數據/結果。他可以使用我的「API」功能。

這是可能的嗎?

因爲我只知道如何使用webbrowser訪問控制器方法。我想它不是一個讓他使用標題(位置)來訪問它們的選項。

所有的建議,使這成爲可能的,歡迎!甚至還有其他方法讓我使用CI來開發。或許有關於這種跨框架協作的最佳實踐?

謝謝

回答

3

MVC似乎分散在它的定義。我將提供的這個定義應該是您的理想選擇。

模型是您構建應用程序業務結束的地方。諸如create_contact,delete_contact和get_contact之類的操作屬於模型層。模型層是構建應用程序API的部分,應該完全獨立。

考慮控制器純粹是用戶的木偶。控制器接受用戶輸入 - 驗證,衛生和其他任何可能在別處完成的操作 - 並調用已在模型層中設置的API。此外,控制器然後指定要使用的視圖 - 無論您的表示層是複雜還是簡單。

表示層通常不是困難。只要你只在視圖中使用讀操作,你應該沒問題。爲了澄清,如果用戶想要創建新聯繫人,控制器可能需要一個名爲create_contact的方法來接受相應的輸入。但是,創建聯繫人的實際操作必須在模型層中完成。這將允許您的其他開發人員通過加載已經設計爲獨立實體的模型,在完全不同的應用程序中重複使用相同的操作。

+0

問題是應用程序正在處理數據庫,涉及到很多類。和配置文件。學說文件等,它發展到一個應用程序,而不僅僅是一個類,他可以包括一個使用。我更喜歡使用CI來開發它,然後以某種方式將它移植到他,以便他可以使用方法來處理地址簿中的聯繫人。在解決這個問題的方法中,我認爲控制器就像API方法一樣。但我不知道如何做到這一點,我的應用程序可以如何與他整合。我不認爲包括index.php會使一切爲他工作。想法? – 2010-04-22 19:55:10

+0

無論底層機制如何,都應該與模型層中屬於完全分離,哪些不屬於模型層。數據庫操作絕對是模型層的一部分。不應將模型層的配置與控制器和視圖的配置混合使用。當模型層是真正的模型層時,只有引導程序文件可以讓其他開發人員使用它。 – erisco 2010-04-22 20:34:56

+0

+1 erisco讓我感覺很聰明。在閱讀了MCV後,基於這個理念提出了我自己的系統,我注意到很多人以對我毫無意義的方式描述模型和控制器。我擔心我做錯了,但是你的描述讓我相信我是對的。謝謝,這一直困擾着我。 – 2010-04-23 02:03:04

相關問題